个性化用户认证流程
配置登录页面
但是这样子配置会导致重定向次数过多.
原理:
1. 访问路径 "/user"
2. 需要权限 跳到 "imooc-signIn.html"
3. 发现 "imooc-signIn.html" 同样也需要权限.
4. 死循环
所以需要配置
自定义登录页面
后端配置
默认是处理【POST】形式的 , 并且名为"/login"的
跨域问题
可以暂时将csrf关闭掉.
如何处理REST API 服务的跳转请求
处理逻辑
登录页改为/authentication/require
接口配置 , 如果重定向的目标URL是一个html则跳转到loginPage(配置) , 如果不是则输出json , 401.
为什么可以这么做呢?因为默认的spring security发现session没有该用户的话就会去跳往login.html.
处理 http code 以及返回的信息内容
实现登录页面可配置化
配置
配置的实现逻辑
创建SecurityProperties
创建BrowserProperties
使SecurityProperties生效
使用
DefaultValue
Spring security 使其生效
自定义成功处理
接口
记idea如何创建基于某个接口的实现类
实现 , 需加上@Component
这里有一个需要注意的地方:
这里是封装后的代码 , 目前还不知道 SavedRequestAwareAuthenticationSuccessHandler该
示例代码
springSecurity Configuration
@Param : Authentication
自定义失败处理
@Param : AuthenticationException 存放各种校验失败的异常。
依赖注入
httpSecurity 配置