私はJersey Webサービスを開発しています。いずれかの方法で、私はWSO2アイデンティティ・サーバーのAPIを呼び出している:私はhowerverそれを起動しようとするとhttps://docs.wso2.com/display/IS530/apidocs/self-registration/#!/operations#SelfRegister#mePostジャージーSSL例外WS02に接続
、それは次の例外を返します。
SunCertPathBuilderException: unable to find valid certification path to requested target
コード私が使用している:
Client restClient = ClientBuilder.newClient();
WebTarget webTarget = restClient.target("https://localhost:9443/api/identity/user/v0.9/me");
String username = "admin";
String separator = ":";
String password = "admin";
// String passphrase = "";
HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic(username, password);
restClient.register(feature);
Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
invocationBuilder.header("Authorization", "Basic " + Base64.encodeAsString(username + ":" + password));
Response response = invocationBuilder.post(Entity.entity(UserBean.class, MediaType.APPLICATION_JSON));
だからどこに問題がありますか。私はそれが述べているのでWSO2からのログは、それを支持するだろう、私の認証が失敗したことを考えた:
Error occurred while trying to authenticate and Authorization header values are not define correctly.
だから私はdebugerの変数にヘッダをチェックし、それが正しく設定され、すべてがマニュアルに従っています。
Java Certificate Client SSL: unable to find valid certification path to requested target
私のクライアントは、サーバー証明書を信頼し、私はそれをインポートする必要があることをしないことを、述べて:私もこの質問を見つけました。しかし、私はJavaやJerseyのレベルでキーストアを使用していません。そのキーストアをどこに置くのですか?また、Identity Serverはローカルでuned localhost証明書を実行します。私はブラウザから接続しようとすると、おそらくクライアント(ブラウザ)が自己署名されているので証明書を信頼しないため、サイトを登録することができなくなります。