标签: oauth2-server

如何使用 JDBC 实现水平扩展 spring-boot oauth2 服务器

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

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

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

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

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

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

有没有办法将 oauth2-server 配置为无状态或其他方式来解决该问题?

这是我的配置,AuthorizationServerConfigurerAdapter 实现。

@Configuration
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {


    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource oauthDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Autowired
    @Qualifier("authenticationManagerBean")
    private AuthenticationManager authenticationManager;

    @Bean
    public JdbcClientDetailsService clientDetailsSrv() {
        return new JdbcClientDetailsService(oauthDataSource());
    }

    @Bean
    public TokenStore tokenStore() {
        return new JdbcTokenStore(oauthDataSource());
    }

    @Bean
    public ApprovalStore approvalStore() {
        return new JdbcApprovalStore(oauthDataSource());
    }

    @Bean
    public …
Run Code Online (Sandbox Code Playgroud)

horizontal-scrolling spring-boot kubernetes oauth2-server

4
推荐指数
1
解决办法
1767
查看次数