2016-10-20 3 views
0

私は、SpringプロジェクトでOAuth2認証サーバーを構成しています。ここに構成があります。Spring Oauth2 JDBCクライアント構成で同じクライアントを複数回追加する

@Override 
public void configure(ClientDetailsServiceConfigurer clients) 
    throws Exception { 
    clients.jdbc(dataSource) 
      .withClient("user") 
      .secret("secret") 
      .scopes("read", "write") 
      .autoApprove(true) 
      .authorizedGrantTypes(
      "password","authorization_code", "refresh_token") 
     } 

問題は、私は、アプリケーションを再起動するたびに、それは私が望んでいないされ、データベースにそれらのクライアントを追加しようとしていることです。私は一意制約違反例外を取得しています。すでに存在していない場合にのみクライアントを追加するように設定する方法を教えてください。

ありがとうございました。

答えて

0

理由: だから、基本的にアプリケーションが起動するとき、あなたのwithClient()内のものをoauth_client_detailsテーブルに挿入するので、それを削除し、動作させるはずのアプリケーションを再起動してください。

すでにアプリケーションを実行しているので、oauth_client_detailsテーブルに行が挿入されました。

解決方法: この行をメソッドに追加してください。そのテーブルの行が見つかります。 @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { clients.jdbc(dataSource); } 最初に上記の行でアプリケーションを起動すると、そのテーブルにエントリを直接追加することも、アプリケーションによって追加することもできます。

テスト目的で手動で追加しました。

これはあなたに役立ちます。それは私のために働いた。

関連する問題