【发布时间】:2016-07-25 06:42:04
【问题描述】:
所以,我有一个独立的 OAuth2 身份验证服务器和客户端应用程序(基于 Web),都使用 Spring OAuth2。
我在身份验证服务器上有一个登录表单主机,使用 Spring 设置(通过登录表单)从客户端应用程序重定向等。
到目前为止一切顺利。
我在客户端添加了注销设置:
.and()
.logout()
.addLogoutHandler(oauth2LogoutHandler())
.logoutSuccessUrl("/")
.clearAuthentication(true)
.deleteCookies("JSESSIONID")
.invalidateHttpSession(true)
.permitAll()
这一切“似乎”都很好。
但是,如果我随后点击客户端上的“登录”链接,当它重定向到授权应用程序时,我不会看到登录屏幕,而只是发生了重定向握手,然后我又回到了客户端应用程序。
所以,问题是,当我在客户端应用程序上注销时,需要在身份验证服务器中“清除”什么?会话信息以某种方式保留在身份验证应用程序上,但是当我点击登录时,我无法找到该会话是如何被拾取的?有没有一种干净的方法可以将“注销”传播到 Auth 服务器?
非常感谢
马丁
【问题讨论】:
-
您应该启用扩展 WebSecurityConfigurerAdapter 的注销并创建一个注销页面,该页面将帖子发送到您的授权应用程序中的 /logout。你在用弹簧靴吗?
-
是的,拉斐尔,我是。我会试试的,谢谢。
-
Rafael - 效果很好。非常感谢。我现在需要做的就是让 Auth 服务器在之后重定向回客户端
标签: spring oauth spring-security oauth-2.0 spring-oauth2