2016-05-31 7 views
1

나는 WSO2 API 관리자에서 이식 된 RESTFul 인 BE Java 서비스를 가지고 있습니다. 게시되어 Store에서 사용할 수 있습니다. 새 응용 프로그램 (이름 'Java App')을 등록했으며 해당 API를 구독하면 토큰과 함께 클라이언트 키와 클라이언트 비밀이 제공되었습니다. 토큰을 사용하여 SOAP UI의 API에 성공적으로 액세스 할 수 있습니다. 내 요구 사항은 독립형 Java 응용 프로그램에서 API에 액세스하는 것입니다. 누군가 나를 안내하거나 게시 된 API에 액세스 할 수있는 적절한 코드를 제공 할 수 있습니까?JavaCode 클라이언트 ID/클라이언트 비밀/토큰을 사용하여 API 관리자 연결

감사합니다, Sreedhar.

답변

0

Apache HTTP client을 사용하면 Authorization을 HTTP 헤더로 보내 API를 호출 할 수 있습니다.

String url = "API_URL"; 

HttpClient client = HttpClientBuilder.create().build(); 
HttpGet request = new HttpGet(url); 

// add Authorization Header header 
request.addHeader("Authorization", "Bearer :" + accessToken); 
HttpResponse response = client.execute(request); 

System.out.println("Response Code : " 
      + response.getStatusLine().getStatusCode()); 

BufferedReader rd = new BufferedReader(
    new InputStreamReader(response.getEntity().getContent())); 

StringBuffer result = new StringBuffer(); 
String line = ""; 
while ((line = rd.readLine()) != null) { 
    result.append(line); 
} 

사용자 이름, 암호 및 클라이언트 키/암호로 토큰 생성의 경우 다음 cURL 샘플을 사용하여 HTTP 요청을 작성할 수 있습니다. 자세한 내용은 당신은 64 인 코드 클라이언트 키/비밀 기지 및 Basic과 같은 인증 헤더와 함께 전송해야 token api

curl -k -d "grant_type=password&username=<username>&password=<password>" -H "Authorization: Basic SVpzSWk2SERiQjVlOFZLZFpBblVpX2ZaM2Y4YTpHbTBiSjZvV1Y4ZkM1T1FMTGxDNmpzbEFDVzhh" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token 

에서 찾을 수 있습니다.

+0

안녕하세요 Abhiram, 코드 스 니펫을 공유해 주셔서 감사합니다. 그러나이 코드를 사용하여 일부 SSL 문제가 발생하여 해결되었습니다. 그러나 코드에서 액세스 할 때 나는 401 (Unauthorized) 코드를 얻고 있습니다. API 관리자 콘솔에서 다음 두 개의 로그가 채워집니다. 1. [2016-06-01 11 : 20 : 22,918] 정보 - APIKeyValidator 잘못된 OAuth 토큰 : 액세스 토큰이 만료되었습니다. 2. [2016-06-01 11 : 20 : 22,924] 잘못된 인증으로 인해 WARN - APIAuthenticationHandler API 인증에 실패했습니다. API 콘솔에서도 동일한 토큰을 사용하여 SOAP UI에서 성공적으로 조회 할 수 있습니다. – sreedhar

+0

또한 클라이언트 토큰을 사용하여 신선한 토큰을 얻은 후 액세스 할 때 사용하는 코드를 찾고 있습니다. 당신이 그러한 코드를 전달한다면 그것은 큰 도움이 될 것입니다. – sreedhar

+0

그것은 로그에서'Access Token : expired'라고 말했고, 새로운 토큰을 생성하고 시도합니다. 두 개의 게이트웨이 URL이 있습니다. 하나는 HTTPS를 통하는 것이고 다른 하나는 HTTP를 사용하는 것이고, HTTP를 사용해야합니다. 그렇지 않으면 클라이언트 측에서 keystore/truststore를 설정해야합니다. –