二、Spring Security认证和授权-基于表单的认证流程及源码解析

学完上期核心原理解析,我们已经知道了Spring Security 是由一系列的过滤器组成,通过拦截指定URL实现用户登录的操作。今天我们基于Spring Security 自带的UsernamePasswordAuthenticationFilter过滤器进行表单验证的开发。

一、表单验证过程源码解析

在这里插入图片描述

1、页面输入用户名密码,提交登录请求。
2、登陆请求被UsernamePasswordAuthenticationFilter过滤器拦截,开始进行登录验证。
3、UsernamePasswordAuthenticationFilter获取用户名(username)、密码(password)参数,并创建一个未认证的UsernamePasswordAuthenticationToken,然后调用AuthenticationManager进行登录验证。
在这里插入图片描述

4、AuthenticationManager不直接进行登录验证,而是使用DaoAuthenticationProvider进行验证,DaoAuthenticationProvider调用UserDetailsService(自定义)对象的loadUserByUsername方法获取用户信息。
在这里插入图片描述

5、然后对获得的对象进行一系列的检查(自定义),包括预检查、附加检查、后检查。预检查检查用户是否被冻结、是否启用、是否过期。附加检查进行用户名密码验证。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、登陆成功后将验证过的用户信息存储在SecurityContext中,然后调用登录成功处理器(自定义)。
在这里插入图片描述

二、表单验证实操

1、 自定义AuthUserDetails类,实现UserDetails接口,用户验证的方法根据自己的业务需要进行具体实现。
在这里插入图片描述

2、 自定义AuthUserDetailsService类,实现UserDetailsService接口,根据具体业务实现loadUserByUsername方法。
在这里插入图片描述

3、 自定义登录成功处理器RestAuthenticationSuccessHandlerr类,继承SavedRequestAwareAuthenticationSuccessHandler,重写onAuthenticationSuccess方法。
在这里插入图片描述

4、 自定义登录失败处理器RestAuthenticationFailureHandler类,继承SimpleUrlAuthenticationFailureHandler,重写onAuthenticationFailure方法。在这里插入图片描述

5、 编写配置类SecurityConfig继承WebSecurityConfigurerAdapter。重写configure方法。在这里插入图片描述
6、 编写前端登录页面,进行登录。
在这里插入图片描述

三、资源管理系统演示

项目演示地址:http://175.24.75.121/#/login
用户名:visitor
密码:visitor
在这里插入图片描述
在这里插入图片描述

四、GITHUB

前端工程:https://github.com/STIll-clx/rms-admin-web
后端工程:https://github.com/STIll-clx/rms

五、专题导航

上一节:Spring Security核心原理及Demo演示
下一节:Spring Security认证和授权-授权流程及源码解析

欢迎点赞加关注!(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值