Как получить принципал после успешного рукопожатия SSL с помощью Mina? - PullRequest
0 голосов
/ 25 июля 2011

Я использую Mina с фильтром SslFilter, настроенным как «требуется аутентификация клиента».

Как только соединение установлено и рукопожатие выполнено, как получить сертификат (или принципал) однорангового узла на другой стороне соединения из моего подкласса IoHandler на сервере?

Редактировать: другими словами, как получить связь между IoSession и принципалом после того, как рукопожатие выполнено и вызван IoHandler.sessionOpened ().

Ответы [ 2 ]

1 голос
/ 25 июля 2011

Похоже, вы можете получить SSLSession, используя SslFilter.getSslSession(...).Затем используйте SSLSession.getPeerCertificateChain(), чтобы получить цепочку сертификатов клиента.Фактический сертификат клиента находится в позиции 0 в этом массиве.

0 голосов
/ 25 июля 2011

Вы не работаете с IoHandler напрямую для этого, это делается с помощью SSLContext , который необходимо предоставить для конструктора SslFilter .Если вы посмотрите на пример echo server , вы увидите, что фактическая проверка выполняется в DefaultTrustManagerFactory.Лично я нахожу этот пример слишком сложным, если я найду что-нибудь попроще, я опубликую его.

...