Есть ли способ указать диапазон портов для SSLSocketFactory и SSLServerSocketFactory

#ssl #sslsocketfactory #jacorb

#ssl #sslsocketfactory #jacorb

Вопрос:

Я настраиваю jacorb для использования с SSL. Выбранные порты сервера / клиента являются случайными. Мне нужно указать диапазон портов, очень похожих на PortRangeSocketFactory / PortRangeServerSocketFactory в случае конфигурации, отличной от SSL.

Я пытаюсь избежать свойства OASSLPort, поскольку порт становится фиксированным (вместо диапазона) и применим только для портов сервера / прослушивания. Порты клиента по-прежнему будут случайными.

У меня есть набор процессов, некоторые из которых действуют как сервер, так и клиент — с jacorb.properties совместно используемыми.

Текущая конфигурация jacorb.properties:

 jacorb.ssl.socket_factory=org.jacorb.security.ssl.sun_jsse.SSLSocketFactory
jacorb.ssl.server_socket_factory=org.jacorb.security.ssl.sun_jsse.SSLServerSocketFactory
  

Я использую Jacorb 3.9, RHEL 7.3 и Java 1.8.0_171.

Ответ №1:

Это было достигнуто путем написания пользовательских фабрик:

  1. PortRangeSSLServerSocketFactory расширяет и составляет класс SSLServerSocketFactory jsse.

переопределенная функция configure() также считывает конфигурацию минимального / максимального порта из jacorb.properties.

Переопределение createServerSocket() для обработки выбора порта. Логика импортирована из org.jacorb.orb.factory.PortRangeServerSocketFactory.

  1. PortRangeSSLSocketFactory расширяет AbstractSocketFactory. Логика SSL импортирована из org.jacorb.security.ssl.sun_jsse.SSLSocketFactory, а логика выбора диапазона портов импортирована из org.jacorb.orb.factory.PortRangeSocketFactory.

Обрабатываются случаи с несколькими домами для обоих с помощью свойства OAIAddr.

Плюсы: возможно множество настроек. Минусы: минимальное использование кода, так как многие атрибуты и методы, логика которых была реализована, были частными.