SpringSecurity---Remember Me

目录

一、Remember Me介绍

二、基本使用

(1)编写配置类

(2)修改Security配置类

(3)修改页面(添加记住我)


一、Remember Me介绍

Spring Security中Remember Me为“记住我”功能,即下次访问系统时无需重新登录。当使用“记住我”功能登录后,Spring Security会生成一个令牌,令牌一方面保存到数据库中,另一方面生成一个叫remember-me的Cookie保存到客户端。之后客户端访问项目时自动携带令牌,不登录即可完成认证。

二、基本使用

(1)编写配置类

 

@Configuration
public class RememberMeConfig {
  @Autowired
  private DataSource dataSource;


  // 令牌Repository
  @Bean
  public PersistentTokenRepository getPersistentTokenRepository() {
    // 为Spring Security自带的令牌控制器设置数据源
    JdbcTokenRepositoryImpl jdbcTokenRepositoryImpl = new JdbcTokenRepositoryImpl();
    jdbcTokenRepositoryImpl.setDataSource(dataSource);
    //自动建表,第一次启动时需要,第二次启动时注释掉
//     jdbcTokenRepositoryImpl.setCreateTableOnStartup(true);
    return jdbcTokenRepositoryImpl;
   }
}

(2)修改Security配置类

// 记住我配置
http.rememberMe()
     .userDetailsService(userDetailsService)//登录逻辑交给哪个对象
     .tokenRepository(repository) //持久层对象
     .tokenValiditySeconds(30); //保存时间,单位:秒

(3)修改页面(添加记住我)

<form class="form" action="/login" method="post">
  <input type="text" placeholder="用户名" name="username">
  <input type="password" placeholder="密码" name="password">
  <input type="checkbox" name="remember-me" value="true"/>记住我</br>
  <button type="submit">登录</button>
</form>

猜你喜欢

转载自blog.csdn.net/gaoqiandr/article/details/133032876
me
今日推荐