Есть ли какой-нибудь способ получить доступ к порту сервера из SSLEngine для моего специального провайдера? - PullRequest
0 голосов
/ 28 января 2019

Я настраиваю своего собственного провайдера jce и уже имею рабочую настройку, расширяя классы SPI / engine

Я использовал Http1Protocol и смог получить псевдоним (я использую порт в качестве ALIAS)через keyManager.chooseServerAlias ​​(keyType, принципал [], сокет), поскольку он имеет параметр сокета с ним

Но когда я изменил его на Http11NioProtocol, он теперь использует ChooseEngineServerAlias ​​для получения псевдонима, и, к сожалению, менеджер ключей не имеет доступа к сокетукоторый я использую в качестве ссылки для получения порта / псевдонима,

Пожалуйста, сообщите

Я проверил ServerHandshaker.setupPrivateKeyAndChain, и он имеет следующую реализацию для получения движка

    if(this.conn != null) {
            var3 = var2.chooseServerAlias(var1, (Principal[])null, this.conn);
        } else {
            var3 = var2.chooseEngineServerAlias(var1, (Principal[])null, this.engine);
        }

Насколько я понимаю, при использовании протоколов NIO он будет использовать SSLEngine, но при использовании протокола IO он использует SSLSocket.Кажется, я буду использовать соединитель NioProtocol на моем tomcat, теперь я не могу получить ссылку на номер порта.

...