今天给web项目的登录页面增加自动登录功能,选择使用SpringSecurity自带的remmeber-me功能键,但是前端页面传值remember-me:on始终无法起作用,在SpringSecurity源码中进行断点,发现可能是由于没有使用SpringSecurity自带的过滤器设置,使用了自定义过滤器(为了实现json传值登录)的原因。在此做个记录。

SpringSecurity中由于自定义过滤器导致无法使用remember-me的问题解决
        可以看到AbstractAuthenticationProcessingFilter中successfulAuthentication()方法中会调用rememberMeServices的loginSuccess()方法,只要配置中有.rememberMe(),在启动时就会自动装配TokenBasedRememberMeServices实现类给RememberMeServices属性。
        使用我自己写的过滤器(继承UsernamePasswordAuthenticationFilter)会发现这里RememberMeServices的实现类是NullRememberMeServices,所以始终无法正确自动登录。

解决办法:SpringSecurity中由于自定义过滤器导致无法使用remember-me的问题解决
注释掉自定义的过滤器,在配置中添加.formLogin()

相关文章:

  • 2022-12-23
  • 2021-06-10
  • 2021-08-08
  • 2021-09-19
  • 2021-05-01
  • 2021-06-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2022-02-09
  • 2021-07-09
  • 2021-12-04
相关资源
相似解决方案