В очень старом проекте мы используем клиент, разработанный с Axis 1.4 для вызова веб-службы SOAP. Этот веб-сервис использует механизм взаимной аутентификации, поэтому у нас есть закрытый сертификат, установленный внутри хранилища ключей, и открытый ключ, установленный внутри доверительного хранилища.Как программно установить контекст SSL для клиента Axis?
Клиент SOAP используется внутри задачи BPM-процесса. Мы не можем, и мы не хотим использовать глобальный траст доверия и хранилище ключей JVM. Тогда мы не можем настроить программно JVM глобальной trustore и хранилище ключей:
// Keystore
System.setProperty("javax.net.ssl.keyStore", fileKeystore);
System.setProperty("javax.net.ssl.keyStorePassword", pwdKeystore);
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
// Truststore
System.setProperty("javax.net.ssl.trustStore", fileTruststore);
System.setProperty("javax.net.ssl.trustStorePassword", pwdTruststore);
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
подход как это заставит нас синхронизировать процесс на свойствах виртуальной машины Java, и мы не хотим, чтобы сделать это. Кроме того, на машине есть другие процессы java.
Мой вопрос: Does Axis 1.4 предлагает API, чтобы указать, какое хранилище ключей и доверительное хранилище использовать для определенного вызова веб-службы?
http://mvnrepository.com/artifact/org.codehaus.mojo/axistools-maven-plugin/1.4 jar не имеет указанного класса SSLClientAxisEngineConfig. Можете ли вы дать правильную зависимость от maven –
О, черт возьми, вы правильно! Попробуйте загрузить библиотеку из [здесь] (https://github.com/linhkuivanen/axistools) или из [здесь] (http://www.java2s.com/Code/Jar/a/Downloadaxisssl14jar.htm). Дай мне знать. –
Класс SSLClientAxisEngineConfig отличается в банках указанным.config.initialize(); не существует в последнем. Я попробовал последний, но я получаю «неспособный получить действительный путь сертификации» –