【发布时间】:2018-02-07 20:12:48
【问题描述】:
我们有一个 java web 应用程序,其中包含很多战争。我们有一个 Oauth2 服务器(由我们编写),我们将有很多客户端(大约 8 个)。所有这些都将在同一个域下。除此之外,我们还有另一个应用程序(在完全不同的 tomcat 上运行。使用了 Liferay)。这个想法是用户将在使用一个应用程序时使用它们,并且他们不应该看到很大的差异。 这就是现在我需要的是,当我以某种方式从一个地方注销时,说 oauth2 服务器和所有其他客户端也注销。 因为对于客户应该是:我已经注销了为什么在某些部分我仍然登录? 目前我不知道该怎么做。 我在很多地方读到,通常这不是惯例。 你能给我提示并解释我可以从哪里开始吗?也许在我的情况下使用 Oauth2 不是最佳选择?
【问题讨论】:
-
Silvia,您想要的称为单点登录 (SSO)。有一个OpenID Connect Session Management RFC 讨论了如何实现它。
-
也许这个链接可以提供帮助:baeldung.com/sso-spring-security-oauth2
-
感谢您的链接,但没有信息如何以我们想要的方式注销。
-
@SilviaPetrova OAuth2 规范不支持它,所以一般来说这是不可能的。但在某些情况下,根据您的实施情况,您可以实施它。如果您的实现使用令牌(始终通过授权服务器调用/数据库调用检查),您可以更改此端点/数据库访问的实现。例如,这对于 JWT 是不可能的。
标签: java spring-security oauth-2.0