Spring Security OAuth2-验证后使会话无效

mpu*_*rla 6 spring-security spring-security-oauth2

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

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

de_*_*xtr 2

据我了解,您正在尝试在执行某些操作后以编程方式注销。也许您应该查看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();
  }
Run Code Online (Sandbox Code Playgroud)