文章目录
  1. 1. Remember-Me接口和实现
    1. 1.1. TokenBasedRememberMeServices
    2. 1.2. PersistentTokenBasedRememberMeServices
  2. 2. 配置Remember-Me

Remember-Me接口和实现

1
2
3
4
5
6
Authentication autoLogin(HttpServletRequest request, HttpServletResponse response);
void loginFail(HttpServletRequest request, HttpServletResponse response);
void loginSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication successfulAuthentication);

Remember-me是和UsernamePasswordAuthenticationFilter一起使用的,通过其父类AbstractAuthenticationProcessingFilter中的钩子来触发回调来实现用户信息的保存。

TokenBasedRememberMeServices

这个实现是通过把用户名和密码进行哈希,然后将生成token值写入Cookies。Cookie的key值同时会被authentication provider共享,以用来进行登录的验证。

PersistentTokenBasedRememberMeServices

这个实现使用起来是和TokenBasedRememberMeServices类似的,只是他不是根据用户名和密码进行哈希,而是生成一个随机的值,然后通过PersistentTokenRepository保存起来。

配置Remember-Me

Remember-Me的请求参数,生效时间等等都是在AbstractRememberMeServices中定义的,通过RememberMeConfigurer来配置Remember-Me。

Remember-Me默认的请求参数是”remember-me”,有效时间两周。

1
2
public static final String DEFAULT_PARAMETER = "remember-me";
public static final int TWO_WEEKS_S = 1209600;
文章目录
  1. 1. Remember-Me接口和实现
    1. 1.1. TokenBasedRememberMeServices
    2. 1.2. PersistentTokenBasedRememberMeServices
  2. 2. 配置Remember-Me
Fork me on GitHub