SpringSecurity学习之路8-重构用户登录

目的:在没有提供自定义登录页面的情况下,系统提供默认的登录页面。

①:application.properties 里写明 默认的登录页面

SpringSecurity学习之路8-重构用户登录

在以下路径中新建三个类:

SpringSecurity学习之路8-重构用户登录

 先看SecurityProperties类,代码如下:

SpringSecurity学习之路8-重构用户登录

它是一个properties的配置类,后面主要是通过它来调用值。prefix的值是根据application.properties里定义的名字来的,是一个前缀。

BrowserSecurity.java代码如下:

SpringSecurity学习之路8-重构用户登录

SecurityProperties类的属性名browser与BrowserSecurity类的属性loginPage,名字不可随意定义。加上prefix组合在一起要与application.properties里定义的属性相同。

SecurityCoreConfig类的作用就是要使上述的配置生效:

SpringSecurity学习之路8-重构用户登录

当且仅当application.properties里没有配置imooc.security.browser.loginPage时,BrowserSecurity类中定义的loginPage才会生效。

②:更改BrowserSecurityConfig类的代码

SpringSecurity学习之路8-重构用户登录

 新建Controller,处理"/authentication/require"请求,主要代码如下:

SpringSecurity学习之路8-重构用户登录

代码很好懂,如果是通过html方式提交的请求就将其引导进入登录页面,如果不是就返回提示权限不足的提示信息{JSON}。对红框部分使用到的类做下介绍。RequestCache类,将用户访问地址栏被重定向到"/authentication/require"的请求放入session。RedirectStrategy类,用作重定向跳转,下面使用到的sendRedirect方法的三个参数也很好懂,请求,响应,要跳转的URL。

SavedRequest类,将缓存到session里的请求拿出。

 

至此就完成了一个可重用架构的实现。