本文介绍了Spring安全OAuth2-身份验证后使会话无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用Spring安全OAuth2保护REST服务。应用程序可以调用/oauth/authorize/oauth/token/rest-api终结点。令牌和REST-API端点是无状态的,不需要会话。

是否可以在用户通过身份验证后使会话无效?如果是这样的话,最好的方法是什么?我们希望用户在调用/oauth/authorize时始终登录。当前,只要存在会话,对/oauth/authorize的调用就跳过身份验证。

推荐答案

据我所知,您正尝试在执行了某些操作后以编程方式注销。也许您应该研究一下SecurityContextLogoutHandler,看看它是如何工作的。有一种方法可以从那里注销。我认为把它称为建议会解决你的问题。

public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
      Assert.notNull(request, "HttpServletRequest required");
      if (invalidateHttpSession) {
          HttpSession session = request.getSession(false);
          if (session != null) {
              session.invalidate();
          }
      }

      SecurityContextHolder.clearContext();
  }

这篇关于Spring安全OAuth2-身份验证后使会话无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 09:19