Клиент T3 с пользовательским SSLSocketFactory - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть код клиента T3, подобный следующему:

private InitialContext initContext() {
    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    p.put(Context.PROVIDER_URL, context.providerURL);

    for (Map.Entry<String, String> entry : getEnvironmentProperties().entrySet()) {
        p.put(entry.getKey(), entry.getValue());
    }

    InitialContext res = null;
    try {
        res = new InitialContext(p);
    } catch (NamingException e) {
        e.printStackTrace();
    }

    return res;
}

Мой клиент t3 развернут на Tomcat (использует wlthint3client-12.1.3.jar) и пытается найти удаленный компонент внешней системы, развернутый на Weblogic.,

Однако, когда я пытаюсь выполнить новый InitialContext (p), я получаю исключение SSLHandshake, потому что он получает стандартный SSLSocketFactory со стандартным SSLConext и стандартным хранилищем Java-хранилищ.

Мой вопрос - есть ли способдать InitialContext некоторое свойство, которое переопределит SSLSocketFacory.Моя цель состоит в том, чтобы заполнить мой склад доверия cutom этому клиенту t3.

Изменение стандартного хранилища доверия, подобного этому

System.setProperty("javax.net.ssl.trustStore", "pathToTrustStore"); 

работает нормально, однако в случае, если мой клиент t3 используется для связи с 2 различными внешними системами, это может быть проблемой при этом.

Есть ли свойство, которое я могу заполнить?

Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
**p.put("CUSTOM SSL SOCKET FACTORY, "MY CLASS");**

1 Ответ

0 голосов
/ 12 декабря 2018

Проблема была решена путем добавления нескольких параметров на стороне приложения

export JAVA_OPTS ="$JAVA_OPTS -Djavax.net.ssl.trustStore=path/truststore.jks"
export JAVA_OPTS ="$JAVA_OPTS -Djavax.net.ssl.trustStorePassword=changeIT"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...