0
簡而言之,我正在執行雙向SSL,並且客戶端證書用於識別最終用戶。 SSLHandler做得很好,SSLHandler知道所有關於該主體的信息。我如何與其他處理程序分享這些信息,以便他們可以在渠道管道中完成他們的工作?如何向ChannelHandlerContext(或其他地方)添加已驗證的用戶(主體)信息
這裏是我的SSLHandler擴展找到用戶主要...
...
類MySslHandler擴展SSLHandler {....
public void messageReceived(
ChannelHandlerContext ctx, MessageEvent e) throws Exception{
logger.info("messageReceived");
super.messageReceived(ctx, e);
try{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " + getPrincipalCertificate().getSubjectDN().toString());
}
catch(Throwable t){
logger.error("Unable to see principal ", t);
}
}
/**
*
* @return Return the user certificate of the principal
* @throws SSLPeerUnverifiedException if the peer is not yet verified
*/
public X509Certificate getPrincipalCertificate() throws SSLPeerUnverifiedException{
return getEngine().getSession().getPeerCertificateChain()[0];
}
}
我大概要補充信息ChannelHandlerContext,因此在SSL會話期間以及所有其他處理程序中都可用,但我無法弄清楚如何執行此操作。這是錯誤的方法?有什麼建議麼?
謝謝!
謝謝,那個工作! – CStepnitz 2012-03-21 14:16:29