【发布时间】:2018-03-24 06:03:59
【问题描述】:
我有一个非常简单的带有社交单点登录功能的 Spring Boot 应用程序。
看起来像这样:
@Configuration
@EnableOAuth2Sso
class Application {
// beans
}
并且它在application.yml 中有必填项:
security:
oauth2:
client:
# clientId: ...
# clientSecret: ...
accessTokenUri: https://www.googleapis.com/oauth2/v3/token
userAuthorizationUri: https://accounts.google.com/o/oauth2/auth
tokenName: oauth_token
authenticationScheme: query
clientAuthenticationScheme: form
scope: email
resource:
userInfoUri: https://www.googleapis.com/userinfo/v2/me
preferTokenInfo: false
它在我的本地机器上运行良好,并且只启动了一个实例。
当有多个实例隐藏在负载均衡器后面时,就会出现问题。
即使用户在第一个请求中进行了身份验证,对负载均衡器的后续请求也会因 401 而被阻止。
与第一个相比,请求被路由到不同的应用实例。
我试图弄清楚,如何使用 JWT 或 JDBC 使其无状态,以便它可以跨多个实例工作。不幸的是,我没有在网上找到任何可行的示例。
其中一些需要启动授权服务器。但这不是我的情况,因为我想将授权完全转发给第三方提供商(例如 Google)。
在这种情况下我应该怎么做才能使授权跨多个实例工作?
【问题讨论】:
标签: java spring spring-boot oauth-2.0 spring-security-oauth2