基本原理
Spring Security 基本原理(如下图):
Spring Security
认证模块
(绿色):
- 账户密码
- /login.html
- 三方:短信、QQ、微信等
权限过滤模块
(橙色):
- 不同的用户拥有访问不同URL的权限
异常模块
(蓝色):
- 对于访问异常进行不同的处理:其中包括未登陆、登陆错误、token失效等.
自定义用户认证逻辑
-
处理用户信息获取
实现UserDetailsService接口 -
用户校验逻辑
UserDetails判断用户是否过期、是否被删除、是否被锁定、密码是否过期 -
密码的加密和解密
利用PasswordEncoder接口
个性化用户认证流程
- 自定义登陆页面
http
.formLogin()
.loginPage("")
.loginProcessingUrl("")
同时需要将两个URL加入非验证中
针对APP和Web不同的登陆做不同的处理:
处理不同类型的请求
注意:系统的配置也需要模块化封装
-
自定义登陆成功处理
继承AuthentictionSccessHandler -
自定义登陆失败处理
继承AuthentictionFailureHandler
注意:成功和失败也要考虑返回Json 或 Html
1、认证处理流程源码说明
2、认证结果如何在多个请求间共享
3、获取认证用户的信息
网友评论