2016-10-20 5 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); } 처음으로 위의 행으로 애플리케이션을 시작한다고 가정하면 해당 테이블에 항목을 직접 추가하거나 애플리케이션별로 추가 할 수 있다고 생각합니다.

테스트 목적으로 수동으로 추가했습니다.

희망이 당신에게 도움이됩니다. 그것은 나를 위해 일했습니다.