zoukankan      html  css  js  c++  java
  • SpringSecurity-RememberMeAuthenticationFilter的作用

      启用remember-me功能,在配置文件中的http节点下添加:

    1 <remember-me
    2             remember-me-parameter="remember-me"  
    3             remember-me-cookie="remember-me"  
    4             token-validity-seconds="86400"  
    5             data-source-ref="dataSource"/>

    这里可以设置表单中的checkbox对应name属性,cookie名称,已经失效时间。在数据库持久化cookie的,还要设置dataSource.

      RememberMeAuthenticationFilter和UsernamePasswordAuthenticationFilter的作用和运行过程几乎一致,唯一大的区别就是这里是从数据库中取到cookie信息,并与客户端传到到服务端的cookie信息对照,如果匹配成功,直接生成有效的Authentication放到SecurityContextHolder中。

      springSecurity默认的查询代码是:

    /** The default SQL used by the <tt>getTokenBySeries</tt> query */
        public static final String DEF_TOKEN_BY_SERIES_SQL = "select username,series,token,last_used from persistent_logins where series = ?";

      也就是说启用rememberme功能需要在数据库中建立一个名为persistent_logins的表

      下面是一个在mysql中的建表语句:

    1 /* For Remember-Me token storage purpose */  
    2 CREATE TABLE persistent_logins (  
    3     username VARCHAR(64) NOT NULL,  
    4     series VARCHAR(64) NOT NULL,  
    5     token VARCHAR(64) NOT NULL,  
    6     last_used TIMESTAMP NOT NULL,  
    7     PRIMARY KEY (series)  
    8 )ENGINE=INNODB DEFAULT CHARSET=utf8;

    当然也可以实现自己的查询逻辑,只需要实现一个继承AbstractRememberMeServices的类即可。持久化cookie默认使用的是PersistentTokenBasedRememberMeServices。

  • 相关阅读:
    MapReduce的DBInputFormat使用
    HDFS NameNode与DataNode介绍
    Hadoop的SequenceFile读实例
    Hadoop的SequenceFile读写实例
    MapReduce工作流程详解
    hadoop使用yarn运行mapreduce的过程
    MapReduce的WordCount
    Hadoop的SequenceFile写实例
    Spring的拦截器和监听器
    Hadoop简介
  • 原文地址:https://www.cnblogs.com/zsxneil/p/6623219.html
Copyright © 2011-2022 走看看