如何通过JDBC实现水平扩展Spring-boot oauth2服务器

问题描述 投票:0回答:1

我有一个使用JDBC实现的spring boot oauth2服务器。通过@EnableAuthorizationServer将其配置为授权服务器。

我想临时扩展该应用程序,但似乎无法正常工作。

仅当我有一个服务器实例(吊舱)时,我才能连接。

我使用来自另一个客户端服务的autorisation_code_client授予来获取令牌。因此,首先,客户端服务将用户重定向到oauth2服务器表单,然后,一旦用户通过身份验证,就应该将他重定向到带有url附加代码的客户端服务,最后,客户端使用该代码来请求oauth2服务器再次获取令牌。

如果我有oauth2-server的多个实例,则根本不会重定向用户。使用一个实例,效果很好。

当我实时检查两个实例的日志时,可以看到对其中一个实例进行身份验证。我没有任何特定的错误,只是该用户没有被重定向。

是否可以将oauth2-server配置为无状态,或者通过其他方式解决该问题?

spring-boot kubernetes horizontal-scrolling oauth2-server
1个回答
0
投票

默认情况下,使用内存中的[[TokenStore。

默认InMemoryTokenStore非常适合

单个服务器

如果您想要多个吊舱,您可能应该选择JdbcTokenStore

JdbcTokenStore是同一事物的JDBC版本,它将令牌数据存储在关系数据库中。如果可以

在服务器之间共享数据库,或者扩展同一服务器的实例],如果只有一个,则使用JDBC版本,如果有多个组件,则可以使用JDBC版本,或者如果授权和资源服务器是多个组件,则使用JDBC版本。要使用JdbcTokenStore,您需要在类路径上使用“ spring-jdbc”。

来源Spring Security: OAuth 2 Developers Guide
© www.soinside.com 2019 - 2024. All rights reserved.