史上最简单的Spring Security教程(三十二):默认用户名密码记住我登录与CA登录融合方案
在上一篇文章史上最简单的史上最简单的Spring Security教程(三十一):默认用户名密码登录新增RememberMe(记住我)选项中,介绍了如何基于 Spring Security 框架默认的用户名密码登录,添加 记住我 选项。如前面文章所述,一个系统的登录方式不止一种,本文即介绍一下如何基于 Spring Security 框架默认的用户名密码登录,添加 记住我 选项后,与CA登录方式共存。
废话不多说,直接看配置。
首先,改造一下登录页,在此前的基础上,新增 CA登录 方式。
然后,修改 Spring Security 配置,新增 CA登录及认证相关配置。
@EnableWebSecurity
@Configuration
public class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {
......
@Overrideprotected void configure(HttpSecurity http) throws Exception {http.......rememberMe().userDetailsService(userDetailsService()).tokenValiditySeconds(14 * 24 * 60 * 60)......;
http.addFilterBefore(certificateAuthorityAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);http.addFilterAfter(customFilterSecurityInterceptor(), FilterSecurityInterceptor.class);}
......
private AbstractAuthenticationProcessingFilter certificateAuthorityAuthenticationFilter() throws Exception {CertificateAuthorityAuthenticationFilter authorityAuthenticationFilter = new CertificateAuthorityAuthenticationFilter();authorityAuthenticationFilter.setAuthenticationSuccessHandler(certificateAuthorityAuthenticationSuccessHandler());authorityAuthenticationFilter.setAuthenticationFailureHandler(certificateAuthorityAuthenticationFailureHandler());authorityAuthenticationFilter.setAuthenticationManager(authenticationManager());return authorityAuthenticationFilter;}
private AuthenticationProvider certificateAuthorityDaoAuthenticationProvider() {CertificateAuthorityDaoAuthenticationProvider certificateAuthorityDaoAuthenticationProvider = new CertificateAuthorityDaoAuthenticationProvider();certificateAuthorityDaoAuthenticationProvider.setUserDetailsService(certificateAuthorityJdbcUserDetailsService());return certificateAuthorityDaoAuthenticationProvider;}
......
}
关于 CA登录方式的配置,在此前的文章 史上最简单的Spring Security教程(二十八):CA登录与默认用户名密码登录共存详细实现及配置 中,已经详细介绍过,可以直接拿过来使用。
系统改造完毕,启动,并访问首页,首先便是登录,我们先尝试用户名密码登录方式。

注意, 一定要记得勾选 记住我 选项哦!
关闭浏览器,直接访问系统首页,此时,仍然可以直接访问,并没有重定向到登录页,无需输入用户名、密码。相同的,重启应用之后,同样可以直接访问系统首页,也无需输入用户名、密码。
然后,我们退出系统,切换到 CA登录 方式,也可以正常登录系统。
默认用户名密码记住我登录 与 CA登录 两套登录方式完美融合,改造完成。
其它详细源码,请参考文末源码链接,可自行下载后阅读。
我是银河架构师,十年饮冰,难凉热血,愿历尽千帆,归来仍是少年!
如果文章对您有帮助,请举起您的小手,轻轻【三连】,这将是笔者持续创作的动力源泉。当然,如果文章有错误,或者您有任何的意见或建议,请留言。感谢您的阅读!
源码
github
https://github.com/liuminglei/SpringSecurityLearning/tree/master/32
gitee
https://gitee.com/xbd521/SpringSecurityLearning/tree/master/32

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
