spring security采用基於持久化 token 的方法實現的remember me功能


采用該方法相較於簡單加密方式安全一些。具體的原理見   http://wiki.jikexueyuan.com/project/spring-security/remember-me.html 
一、建立存儲token的表persistent_logins
CREATE TABLE persistent_logins (
  username varchar(64) not null,
  series varchar(64) not null,
  token varchar(64) not null,
  last_used timestamp not null,
  PRIMARY KEY (series)
);

因為我們采用的是JdbcTokenRepositoryImpl,所以表名以及字段采用的都是官方文檔中的。

二、修改SecurityConfig配置
.and()
   .rememberMe().tokenRepository(persistentTokenRepository())
   .tokenValiditySeconds(1209600);
 
@Resource
private DataSource dataSource;
 
//如果采用持久化 token 的方法則需要指定保存token的方法
    @Bean
    public PersistentTokenRepository persistentTokenRepository() {
        JdbcTokenRepositoryImpl db = new JdbcTokenRepositoryImpl();
        db.setDataSource(dataSource);
        return db;
    }

三、即可進行測試了

觀察數據庫,可以發現當使用remember me方式登錄以后,token值會被修改


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM