在上一篇文章 史上最简单的Spring Security教程(三十一):默认用户名密码登录新增RememberMe(记住我)选项 中,介绍了如何基于 Spring Security 框架默认的用户名密码登录,添加 记住我 选项。如前面文章所述,一个系统的登录方式不止一种,本文即介绍一下如何基于 Spring Security 框架默认的用户名密码登录,添加 记住我 选项后,与CA登录方式共存。 废话不多说,直接看配置。 首先,改造一下登录页,在此前的基础上,新增 CA登录 方式。


<div id="login" class="tab-pane active">  <form th:action="@{/login}" method="post" th:method="post" class="mt-1">    <div class="form-group">      <input type="text" class="form-control" name="username" placeholder="用户名">    div>    <div class="form-group">      <input type="password" class="form-control" name="password" placeholder="密码">    div>    <div class="checkbox">      <label><input type="checkbox" name="remember-me"> 记住我label>    div>    <button type="submit" class="btn btn-primary btn-block mb-1 mt-1">登录button>    <p class="text-muted text-center"> <a href="login.html#">      <small>忘记密码了?small>a> | <a href="#">注册一个新账号a>    p>  form>div><div id="ca_login" class="tab-pane">  <form th:action="@{/certificate_authority_login}" method="post" th:method="post" class="mt-1">    <div class="form-group">      <input type="text" class="form-control" name="signature" value="3691308F2A4C2F6983F2880D32E29C84" readonly />    div>    <button type="submit" class="btn btn-primary btn-block mb-1 mt-1">登录button>    <p class="text-muted text-center"> <a href="login.html#">      <small>忘记密码了?small>a> | <a href="#">注册一个新账号a>    p>  form>div>

然后,修改 Spring Security 配置,新增 CA登录及认证相关配置。

@EnableWebSecurity@Configurationpublic class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {    ......    @Override    protected 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登录与默认用户名密码登录共存详细实现及配置 中,已经详细介绍过,可以直接拿过来使用。 系统改造完毕,启动,并访问首页,首先便是登录,我们先尝试用户名密码登录方式。

springsecurity 在哪密码校验_用户默认密码是多少 oracle


注意, 一定要记得勾选 记住我 选项哦!

关闭浏览器,直接访问系统首页,此时,仍然可以直接访问,并没有重定向到登录页,无需输入用户名、密码。相同的,重启应用之后,同样可以直接访问系统首页,也无需输入用户名、密码。

然后,我们退出系统,切换到 CA登录 方式,也可以正常登录系统。