怎么使用Spring Security


这篇文章主要介绍“怎么使用Spring Security”,在日常操作中,相信很多人 香港云主机在怎么使用Spring Security问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Spring Security”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:1、一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;2、另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用的开发过程中。市面上存在比较有名的:ShiroSpring Security !这里需要阐述一下的是,每一个框架的出现都是为了解决某一问题而产生了,那么Spring Security 框架的出现是为了解决什么问题呢?首先我们看下它的官网介绍:Spring Security官网地址Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirementsSpring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它实际上是保护基于spring的应用程序的标准。Spring Security是一个框架,侧重于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring安全性的真正强大之处在于它可以轻松地扩展以满足定制需求从官网的介绍中可以知道这是一个权限框架。想我们之前做项目是没有使用框架是怎么控制权限的?对于权限 一般会细分为功能权限访问权限菜单权限各种权限写起来用Filter来写会导致代码非常的繁琐,冗余。怎么解决之前写权限代码繁琐,冗余的问题,一些主流框架就应运而生而Spring Scecurity就是其中的一种。Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。对于上面提到的两种应用情景,Spring Security 框架都有很好的支持。 1、 在用户认证方面,Spring Security 框架支持主流的认证方式,包括 HTTP 基本认证、HTTP 表单验证、HTTP 摘要认证、OpenID 和 LDAP 等。 2、 在用户授权方面,Spring Security 提供了基于角色的访问控制和访问控制列表(Access Control List,ACL),可以对应用中的领域对象进行细粒度的控制。1、新建一个初始的springboot项目web模块,thymeleaf模块2、导入静态资源3、controller跳转!4、测试实验环境是否OK!Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入spring-boot-starter-security模块,进行少量的配置,即可实现强大的安全管理!记住几个类:WebSecurityConfigurerAdapter:自定义Security策略AuthenticationManagerBuilder:自定义认证策略@EnableWebSecurity:开启WebSecurity模式Spring Security的两个主要目标是 认证授权(访问控制)。认证(Authentication) 身份验证是关于验证您的凭据,如用户名/用户ID和密码,以验证您的身份。 身份验证通常通过用户名和密码完成,有时与身份验证因素结合使用。授权(Authorization)授权发生在系统成功验证您的身份后,最终会授予您访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。这个概念是通用的,而不是只在Spring Security 中存在。目前,我们的测试环境,是谁都可以访问的,我们使用Spring Security增加上认证和授权的功能1、引入 Spring Security 模块2、编写 Spring Security 配置类参考官网:https://spring.io/projects/spring-security查看我们自己项目中的版本,找到对应的帮助文档:文档3、编写基础配置类4、定制请求的授权规则 configure方法内容自定义。5、测试一下:发现除了首页都进不去了!因为我们目前没有登录的角色,因为请求需要登录的角色拥有对应的权限才可以!6、在configure()方法中加入以下配置,如果没有权限访问若干网址则直接跳转到登陆页面!formLogin7、测试一下:发现,没有权限的时候,会跳转到登录的页面(SpringSecurity 自带登陆页面)!8、查看刚才登录页的注释信息;我们可以定义认证规则,重写configure(AuthenticationManagerBuilder auth)方法9、测试,我们可以使用这些账号登录进行测试!发现会报错!10、原因,我们要将前端传过来的密码进行某种方式加密,否则就无法登录,修改代码11、测试,发现,登录成功,并且每个角色只能访问自己认证下的规则!搞定1、开启自动配置的注销的功能2、我们在前端,增加一个注销的按钮(系统自带的登陆页面),index.html 导航栏中3、我们可以去测试一下,登录成功后点击注销,发现注销完毕会跳转到登录页面!4、但是,我们想让他注销成功后,依旧可以跳转到首页,该怎么处理呢?5、测试,注销完毕后,发现跳转到自定义的首页OK6、我们现在又来一个需求:用户没有登录的时候,导航栏上只显示登录按钮,用户登录之后,导航栏可以显示登录的用户信息及注销按钮!还有就是,比如sowhat这个用户,它只有 vip2,vip3功能,那么登录则只显示这两个功能,而vip1的功能菜单不显示!这个就是真实的网站情况了!该如何做呢?我们需要结合thymeleaf中的一些功能sec:authorize=”isAuthenticated()”:是否认证登录!来显示不同的页面Maven依赖:7、修改我们的 前端页面导入命名空间修改导航栏,增加认证判断8、重启测试,我们可以登录试试看,登录成功后确实,显示了我们想要的页面;9、如果注销404了,就是因为它默认防止csrf跨站请求伪造,因为会产生安全问题,我们可以将请求改为post表单提交,或者在spring security中关闭csrf功能;我们试试:在 配置中增加http.csrf().disable();10、我们继续将下面的角色功能块认证完成!

相关推荐: 基于linux2.6.12.1的进程睡眠原理是什么

这篇文章给大家介绍基于linux2.6.12.1的进程睡眠原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。进程是一个动态的实体,满足条件的情况下,他一直在执行,但是有时候,进程需要条件得不到满足的时候,他就会被挂起。但这是被动的,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/06 22:32
下一篇 09/06 22:33

相关推荐