我正在使用带有SslFilter的Mina,配置了“需要客户端身份验证”。
一旦建立连接并完成握手,如何从服务器上IoHandler的子类获取连接另一端的对等体的证书(或主体)?
编辑:换句话说,一旦握手完成并调用IoHandler.sessionOpened(),如何获取IoSession与主体之间的关系。
答案 0 :(得分:1)
看起来您可以使用SslFilter.getSslSession(...)
获取SSLSession
。然后,使用SSLSession.getPeerCertificateChain()
获取客户端证书链。实际的客户端证书位于该数组中的第0位。
答案 1 :(得分:0)
您不直接使用IoHandler,它是使用您需要为SSLContext构造函数提供的SslFilter完成的。如果您查看echo server示例,可以看到实际检查是在DefaultTrustManagerFactory中完成的。就个人而言,我发现这个例子有点过于复杂,如果我能找到更简单的东西,我会发布它。