2016-05-31 6 views
1

私はWSO2 APIマネージャーに移植されたRESTFulであるBE Javaサービスを持っています。これは発行されストアで利用可能です。新しいアプリケーション(名前は「Java App」)を登録し、そのAPIを購読すると、クライアントキーとクライアントシークレットがトークンとともに提供されました。トークンの使用私はAPI(SOAP UIから)に正常にアクセスできました。私の要件は、スタンドアロンのJavaアプリケーションからAPIにアクセスすることです。誰かが私に指示したり、公開APIにアクセスできる適切なコードを提供することはできますか?クライアントID /クライアントシークレット/トークンを使用してAPIを接続するためのJavaCode

よろしくお願いいたします。

答えて

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などのAuthorizationヘッダーでそれを送信する必要が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マネージャコンソールには、次の2つのログが入力されます。 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'と書いてありますが、新しいトークンを生成して試してみます。 2つのゲートウェイURLがあり、1つはHTTPS経由で、もう1つはHTTP経由です.HTTPを使用する必要があります。そうでなければ、クライアント側でキーストア/トラストストアを設定する必要があります。 –

関連する問題