java - Spring boot Security,Oauth2 注销,使 session 无效,以便在授权服务器中完成身份验证和批准周期

标签 java angularjs spring-security spring-boot spring-security-oauth2

我一直在关注 Dave Syer 教程,SSO with OAuth2,第 5 部分 https://github.com/spring-guides/tut-spring-security-and-angular-js/tree/master/oauth2

它有 UI/API 网关、资源服务器和授权服务器。 当我从 UI/API 网关应用程序单击注销时,我得到以下信息,enter image description here问题

Dave Syer 教程中当前发生的情况是,当用户单击注销时,它会将身份验证标志更改为 false,使用户看起来似乎已注销,但他们只是从 UI/API 网关应用程序注销。

当用户点击登录时,请记住他们还没有从身份验证服务器注销。因此,用户不会再次经历身份验证和批准周期。

我想要的是,当用户单击注销并尝试再次登录时,用户必须输入用户名和密码。事实上,他们应该重新开始,这意味着系统应该使 session 和/或 token 无效。

我一直在努力寻找解决方案。谁能指出如何解决/实现这一点。

最佳答案

@SuppressWarnings("null")
    @RequestMapping(value="/login")
    public String login(HttpServletRequest request){
         HttpSession session= request.getSession();
        SecurityContextHolder.clearContext();
        if(session == null) {
            session.invalidate();
        }
        return"login";
    }

关于java - Spring boot Security,Oauth2 注销,使 session 无效,以便在授权服务器中完成身份验证和批准周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39082691/

相关文章:

javascript - 在 Bootstrap + Angular 中显示一个低于另一个的警报

forms - Angularjs 检查表单中的部分是否有效

security - 各种微服务中 JWT 的共享签名 key

grails - grails spring安全插件-为什么AjaxAwareAuthenticationSuccessHandler总是删除保存的请求?

authentication - Grails Spring Security Core 创建新用户

java - 如何显示kafka中的每个分区而不是每个记录?

java - 如何在Java中用十进制格式表示 "1.275"到 "1.28"

javascript - 如何使用 AngularJS 的 $http 将文件发送到 PHP 脚本

java - Commons CLI 中没有选项名称的必需参数

java - 如何在tomcat中获取webapp的工作目录?