0

「クライアント認証が必要」で構成されたSslFilterでMinaを使用しています。

接続が確立され、ハンドシェイクが完了したら、サーバー上の IoHandler のサブクラスから接続の反対側にあるピアの証明書 (またはプリンシパル) を取得する方法は?

編集:つまり、ハンドシェイクが完了して IoHandler.sessionOpened() が呼び出されたときに、IoSession とプリンシパルの間の関係を取得する方法。

4

2 に答える 2

1

SSLSessionを使用して取得できるようですSslFilter.getSslSession(...)。次に、 を使用SSLSession.getPeerCertificateChain()してクライアント証明書チェーンを取得します。実際のクライアント証明書は、その配列の位置 0 にあります。

于 2011-07-25T11:21:52.797 に答える
0

そのために IoHandler を直接操作するのではなく、 SslFilterコンストラクターに提供する必要があるSSLContextを使用して行われます。エコー サーバーの例を見ると、実際のチェックは DefaultTrustManagerFactory で行われていることがわかります。個人的には、その例は少し複雑すぎると思います。もっと簡単なものを見つけたら投稿します。

于 2011-07-25T09:59:14.873 に答える