初步理解Spring Security并实践

Spring Security主要做两件事,一件是认证,一件是授权。

1.Spring Security初体验

Spring Security如何使用,先在你的项目pom.xml文件中声明依赖。

初步理解Spring Security并实践_第1张图片后创建一个类并继承WebSecurityConfigurerAdapter这个方法,并在之类中重写configure的3个方法,其中3个方法中参数包括为HttpSecurity(HTTP请求安全处理),AuthenticationManagerBuilder(身份验证管理生成器)和WebSecurity(WEB安全)。

初步理解Spring Security并实践_第2张图片

接下来我们先看看protected void configure(HttpSecurity http)这个方法提供了一个默认的配置。

初步理解Spring Security并实践_第3张图片

http.authorizeRequests()其中这里的意思是指通过authorizeRequests()方法来开始请求权限配置。而接着的.anyRequest().authenticated()是对http所有的请求必须通过授权认证才可以访问。

初步理解Spring Security并实践_第4张图片

直观描述

初步理解Spring Security并实践_第5张图片

方法描述

而and()是返回一个securityBuilder对象,formLogin()和httpBasic()是授权的两种方式。

初步理解Spring Security并实践_第6张图片

httpBasic()授权认证

初步理解Spring Security并实践_第7张图片

formLogin()授权认证

当然这些界面都是spring security原生的界面,我们也可以自定义我们的formLogin页面!

初步理解Spring Security并实践_第8张图片

提示一下,这个自定义表单登录的自定义页面中的登录名参数必须被命名为username密码参数必须被命名为password。而接下来当我们需要对某些开放的url,给与任何人访问的时候,我们应该如何设置呢?答案很简单我们先看着代码慢慢深入!

初步理解Spring Security并实践_第9张图片

我们可以在authorizeRequests() 后定义多个antMatchers()配置器来控制不同的url接受不同权限的用户访问,而其中permitAll()  方法是运行所有权限用户包含匿名用户访问。

初步理解Spring Security并实践_第10张图片

温馨提示!这里就是为什么在hasRole和hasAnyRole中不需要加"ROLE_" 前缀的因由!

2.Spring Security定制登录退出行为

我们接下来就简单的定制一下登录登出行为!

初步理解Spring Security并实践_第11张图片

3.Spring Security定制自定义用户认证

初步理解Spring Security并实践_第12张图片

用户认证流程

初步理解Spring Security并实践_第13张图片

建MyUserDetailsService方法并实现UserDetailsService这个接口

初步理解Spring Security并实践_第14张图片

基本的认证逻辑就到这里了,对于有另外的业务需求都可以在自定义的myUserDetailsService中处理完成!

4.Spring Security定制自定义授权策略

初步理解Spring Security并实践_第15张图片

新建MySecurity类

初步理解Spring Security并实践_第16张图片

版权申明:内容来源网络,版权归原创者所有。如有侵权烦请告知,我们会尽快删除并表示歉意。谢谢。原文:

https://www.jianshu.com/p/e6655328b211

你可能感兴趣的:(初步理解Spring Security并实践)