【问题标题】:Concurrent Session and Remember-me并发会议和记住我
【发布时间】:2018-10-23 15:08:32
【问题描述】:

我这样做了:

  1. 用户登录并选中“记住我”框1。

  2. 用户已登录并且选中“记住我”框 2 相同帐户,然后用户退出。

有问题:

  • 用户就地注销后 2,用户的 Remember-me 持久令牌 在数据库中也被删除(我使用 PersistentTokenBasedRememberMeServices)。

我想做:

  • 用户登录并没有检查remember-me in place2,然后注销,它 不会影响数据库中的持久令牌。

我该如何解决这个问题?

【问题讨论】:

    标签: spring-mvc spring-boot spring-security remember-me


    【解决方案1】:

    我做了如下,而且措辞很好!

    public class MyRememberMeService extends PersistentTokenBasedRememberMeServices {
        public MyRememberMeService(String key, UserDetailsService userDetailsService, PersistentTokenRepository tokenRepository) {
            super(key, userDetailsService, tokenRepository);
        }
    
        @Override
        public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
            String rememberMeCookie = extractRememberMeCookie(request);
            if (rememberMeCookie == null || rememberMeCookie.length() == 0) {
                if (logger.isDebugEnabled()) {
                    logger.debug("Logout of user "
                            + (authentication == null ? "Unknown" : authentication.getName()));
                }
                cancelCookie(request, response);
            } else {
                super.logout(request, response, authentication);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2017-02-25
      • 2011-01-13
      相关资源
      最近更新 更多