У меня есть код клиента 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");**