频道
bg

Spring Security RememberMe

coding二月 14, 20161mins
Spring Security

Remember-Me接口和实现H2

bash

Authentication autoLogin(HttpServletRequest request, HttpServletResponse response);
void loginFail(HttpServletRequest request, HttpServletResponse response);
void loginSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication successfulAuthentication);

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

TokenBasedRememberMeServicesH3

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

PersistentTokenBasedRememberMeServicesH3

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

配置Remember-MeH2

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

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

bash

public static final String DEFAULT_PARAMETER = "remember-me";
public static final int TWO_WEEKS_S = 1209600;

评论


新的评论

匹配您的Gravatar头像

Joen Yu

@2022 JoenYu, all rights reserved. Made with love.