Используйте WebLogic (t3s) EJB от Tomcat - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть клиентский код, который использует wlsfullclient и развернут на Tomcat. Этот клиент пытается использовать приложение, развернутое в Weblogic (поиск EJB-компонента по защищенному протоколу t3s ). Проблема в том, что я получаю исключение как это:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: не удалось построить путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрашиваемой цели; Нет доступного роутера по назначению

Через некоторое время в режиме отладки при создании соединения я увидел SocketFactory с менеджером доверенных хранилищ. Я пришел к выводу, что доверенное хранилище, которое используется на стороне клиента для проверки сертификата сервера , является стандартным хранилищем доверия Java , и, конечно, у меня нет соответствующего сертификата или CA.

Ранее мой клиент был развернут в Weblogic (A) и использует приложение, развернутое также в Weblogic (B). В этом случае все было в порядке, так как я полагаю, что хранилище доверенных сертификатов, настроенное на Socket Factory, было настроено в Weblogic (A) для проверки сертификата сервера, полученного из хранилища ключей, настроенного в Weblogic (B).

Ниже кода, который выполняет поиск:

public Object lookup(final String resourceName) {
            Object res = null;
            try {
                res = ic.lookup(resourceName);
            } catch (NamingException ex) {
                throw new RuntimeException(ex);
            }

            return res;
        }

Так что мой вопрос - есть ли способ сообщить моему клиенту, использовать пользовательский SocketFactory с хранилищем доверия, который я хочу предоставить из определенного места? Как я могу это реализовать?

Любые идеи приветствуются ...

...