我正在设置自己的jce提供程序,并且已经通过扩展SPI /引擎类来进行设置
我使用的是Http1Protocol,我能够通过keyManager.chooseServerAlias(keyType,Principal [],socket)检索别名(使用端口作为ALIAS的Im),因为它具有套接字参数
但是当我将其更改为Http11NioProtocol时,它现在使用chooseEngineServerAlias来检索别名,不幸的是,keymanager无法访问套接字,Im将此套接字用作检索端口/别名的参考,
请告知
我已经检查了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。似乎我将在tomcat上使用NioProtocol连接器,但现在无法获得端口号的引用。