HTTPで実行されているレストサービスを使用する必要があります。プロデューサーは私に証明書とメソッドの引数を与えました。サービスを利用する方法とコードで証明書を使用する方法を教えてください。私はSpring 4、Java 8を使用しています。コードスニペットを共有してください。HTTPs(および証明書)を使用してJava/Spring Restサービスを使用する
0
A
答えて
0
あなたは単に、それは消費者がサービスのIDを検証だけ一方向SSLの場合RestTemplate
http://www.radcortez.com/ssl-tls-rest-server-client-with-spring-and-tomee/
0
を使用してHTTPSでRESTfulなサービスにアクセスするための怒鳴るリンクを参照することができますサービスによって提供された証明書(プロデューサ証明書)を信頼ストア(CACertsファイル)にインポートするか、独自のトラストマネージャを作成する必要があります。
サービスでもクライアントのIDを認証する2ウェイSSLの場合、サービスのIDを検証するだけでなく、証明書をサービスに送信してサービスで決定できるようにする必要があります。
次のスニペットは2ウェイSSLのためのものですが、クライアント証明書をサーバーに送信する部分をコメントアウトすることで、一方向SSLに簡単に採用できます。
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager(){
public X509Certificate[] getAcceptedIssuers(){return null;}
public void checkClientTrusted(X509Certificate[] certs, String authType){}
public void checkServerTrusted(X509Certificate[] certs, String authType){}
}};
// Install the all-trusting trust manager
RestTemplate restTemplate = new RestTemplate();
try {
String keyPassphrase = "changeit";
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(new FileInputStream("c:\\jks\\client.jks"), keyPassphrase.toCharArray());
KeyManagerFactory kmfactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmfactory.init(keyStore, keyPassphrase.toCharArray());
KeyManager[] keyManager = kmfactory.getKeyManagers();
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(keyManager, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier(){
public boolean verify(String hostname,
javax.net.ssl.SSLSession sslSession) {
if (hostname.equals("localhost")) {
return true;
}
return false;
}
});
} catch (Exception e) {
;
}
System.out.println("Testing listAllUsers API-----------");
restTemplate.setErrorHandler(new ResponseErrorHandler(){
@Override
public void handleError(ClientHttpResponse rs) throws IOException {
InputStream in = rs.getBody();
String str = new String("");
int len =0;
while((len = in.available()) > 0){
byte[] bytes = new byte[len];
in.read(bytes);
str = str + new String (bytes, "UTF-8");
}
System.out.println(str);
}
@Override
public boolean hasError(ClientHttpResponse rs) throws IOException {
return false;
}
});
try{
String usersMap = restTemplate.getForObject(REST_SERVICE_URI+"/user/shailendra/", String.class);`
関連する問題
- 1. 証明書なしでHTTPSを使用してSOAP Webサービスを呼び出す
- 2. 証明書を使用してWebサービスを呼び出す
- 3. HTTPSで証明書を発行するHTTPS経由でNode.JSおよびUnirestを使用する
- 4. JKSおよび/またはPFX証明書を使用してC#クライアントからJava Webサービスを呼び出す
- 5. WebSphere、Spring-WSおよびWSS4Jを使用したWebService証明書の検証
- 6. ACMの証明書を使用してelasticbeanstalkでhttpsを強制
- 7. https BasicHttpBindingを使用し、証明書のエラーを無視する
- 8. 証明書なしのwcfでのカスタム認証、https、ssl、およびiis
- 9. 異なるユーザー証明書を使用したJava Rest Call
- 10. アクティブな証明書を使用してHTTPSをHTTPに書き換える
- 11. RESTAssured - httpsコールの.pfx証明書を使用します。
- 12. SSL over TCP証明書を使用してWindowsサービスを認証する
- 13. ASP.NET Webサービスで証明書を使用してクライアントを認証する方法
- 14. Weblogic 10.3.2およびSHA256withRSA証明書シグネチャアルゴリズム
- 15. System.Net.WebClientをHTTPS証明書で使用する
- 16. SSL証明書でWCFを使用するにはHTTPS IIS
- 17. Insomnia Rest Clientをクライアント証明書で使用するには?
- 18. Jerseyクライアント2.25.1でHTTPS(証明書)を使用した複数スレッドアクセス
- 19. iTextsharpを使用して証明書を作成し、pdf(証明書を使用)を暗号化する
- 20. 期限切れの証明書を使用してhttps経由でPHP RESTリクエストを許可する方法
- 21. 独自の証明書を使用してhttpsサーバーアプリケーションを作成する
- 22. Swift:サーバーSSL証明書を使用してHttpsリクエストを作成する方法
- 23. カスタム証明書を使用してHTTPS接続を確立する
- 24. nodejsを使用して証明書ストアからp12証明書をダウンロードする
- 25. CRSFおよびSSL証明書
- 26. NodeJs暗号を使用して証明書を検証する
- 27. HTTP(HTTPSを使用しない)を介したクライアント証明書の認証
- 28. AWS/EC2を使用してSSL証明書を適用する
- 29. デジタル証明書およびSAMLシリアライズ
- 30. JavaFX WebViewおよびクライアント証明書
春休みテンプレートを使用できます。 [この回答はあなたを助けることができます](https://stackoverflow.com/questions/17619871/access-https-rest-service-using-spring-resttemplate)そこのコードスニペットを見て、必要。 – andreybleme