3

我正在使用 Spring 安全性设置 OAuth2.0 授权服务器。我想知道在 OAuth2.0 授权服务器启动并运行后是否有办法动态注册 OAuth2.0 客户端?

基本上,我知道我可以在配置 OAuth2.0 服务器时注册客户端,方法是扩展AuthorizationServerConfigurerAdapter并覆盖 configure 方法以在内存中添加客户端详细信息。但是,这种方式客户端是预先注册的,我想知道如何动态添加客户端详细信息。

@Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { // @formatter:off clients.inMemory() .withClient(CLIENT_ID) .secret(CLIENT_SECRET) .authorizedGrantTypes("authorization_code", "implicit") .redirectUris("http://junk/") .scopes("cn") .accessTokenValiditySeconds(600); // @formatter:on }

4

1 回答 1

5

您应该能够只使用JdbcClientDetails(甚至还有类似于内存中的便捷方法):

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.jdbc(dataSource)
                .passwordEncoder(passwordEncoder)
            .withClient("my-trusted-client")
        ... etc.

(代码取自这里:https ://github.com/spring-projects/spring-security-oauth/blob/master/tests/annotation/jdbc/src/main/java/demo/Application.java#L102 。)然后您有一个数据库,其中包含可以在运行时根据需要更改的数据。

于 2016-07-14T09:22:55.197 回答