我有一个使用JDBC实现的spring boot oauth2服务器。通过@EnableAuthorizationServer将其配置为授权服务器。
我想临时扩展该应用程序,但似乎无法正常工作。
仅当我有一个服务器实例(吊舱)时,我才能连接。
我使用来自另一个客户端服务的autorisation_code_client授予来获取令牌。因此,首先,客户端服务将用户重定向到oauth2服务器表单,然后,一旦用户通过身份验证,就应该将他重定向到带有url附加代码的客户端服务,最后,客户端使用该代码来请求oauth2服务器再次获取令牌。
如果我有oauth2-server的多个实例,则根本不会重定向用户。使用一个实例,效果很好。
当我实时检查两个实例的日志时,可以看到对其中一个实例进行身份验证。我没有任何特定的错误,只是该用户没有被重定向。
是否可以将oauth2-server配置为无状态,或者通过其他方式解决该问题?
默认情况下,使用内存中的[[TokenStore。
默认InMemoryTokenStore非常适合如果您想要多个吊舱,您可能应该选择单个服务器
JdbcTokenStore
JdbcTokenStore是同一事物的JDBC版本,它将令牌数据存储在关系数据库中。如果可以来源Spring Security: OAuth 2 Developers Guide在服务器之间共享数据库,或者扩展同一服务器的实例],如果只有一个,则使用JDBC版本,如果有多个组件,则可以使用JDBC版本,或者如果授权和资源服务器是多个组件,则使用JDBC版本。要使用JdbcTokenStore,您需要在类路径上使用“ spring-jdbc”。