Проблемы с Java 8 SSL - правильно работает с Java 7 - PullRequest
0 голосов
/ 20 марта 2019

Я использую веб-сервис, который использует сертификат SSL, они предоставили сертификат PKCS12. Сгенерированный JKS с использованием keytool, сертификат работает нормально в SOAPUI.

Мой проект использует Java 8, но когда я пытаюсь вызвать службу с использованием JKS, он показывает com.sun.xml.internal.ws.fault.ServerSOAPFaultException: клиент получил ошибку SOAP от сервера: отклонено политикой.

Пробовал то же самое с Java 7, он работает нормально и получает ответ от сервиса. Ниже приведен код

SSLContext sc = SSLContext.getInstance("TLSv1.2");

KeyManagerFactory kmf =KeyManagerFactory.getInstance( KeyManagerFactory.getDefaultAlgorithm() );
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream ("MYCLIENTCERT.JKS"), "keystorepassword".toCharArray() );
kmf.init( ks, "sourcepassword".toCharArray() );
sc.init( kmf.getKeyManagers(), null, null );

((BindingProvider) bp).getRequestContext().put("com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",sc.getSocketFactory() );

PKCS12, заданный непосредственно в Java 7, который также работает нормально, не в Java8 (jdk1.8.0_131)

 KeyStore ks = KeyStore.getInstance("PKCS12");
    ks.load(new FileInputStream ("filename.p12"), "sourcepassword".toCharArray() );
    kmf.init( ks, "sourcepassword".toCharArray() );

Пробовал так много вариантов, но, кажется, ничего не работает. Любая помощь будет оценена.

...