2016-03-03 121 views
3

我正在使用Spring安全性設置OAuth2.0授權服務器。我想知道在OAuth2.0授權服務器啓動並運行後是否有辦法動態註冊OAuth2.0客戶端?Spring 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 }

回答

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)然後你擁有一個數據庫,您可以根據需要隨時更改數據。