activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claudio Corsi <clco...@yahoo.com>
Subject Re: NIO+SSL How retrieve the SSL session certificate?
Date Mon, 27 Aug 2012 17:31:23 GMT
Francesco,

This is a bug and you should create a jira issue for this so that it can get fixed.

--Claudio



>________________________________
> From: Francesco Romano <francesco.romano@abodata.com>
>To: users@activemq.apache.org 
>Sent: Monday, August 27, 2012 2:40 AM
>Subject: Re: NIO+SSL How retrieve the SSL session certificate?
> 
>Nobody can help me?
>
>Francesco
>
>On Aug 21, 2012, at 1:34 PM, Francesco Romano wrote:
>
>> Hi everybody.
>> 
>> In order to mitigate the number of threads created by ActiveMQ, I'm trying to migrate
from the "old" tcp and ssl to the new nio and nio+ssl protocols.
>> I'm having an issue with the secure version of nio: in my authentication plugin I
cannot get the certificate associated with the ssl session (it worked in the old ssl version).
>> 
>> This is the old code in the authentication plugin:
>> 
>> public void addConnection(ConnectionContext context, ConnectionInfo info) 
>>             throws Exception {      
>> 
>>         ....
>> 
>>         X509Certificate[] certChain = (X509Certificate[])info.getTransportContext();
>> 
>> Now, with nio+ssl certChain is null.
>> I looked in the sources and in the SSLTransport java class there are these two functions:
>> 
>> public void doConsume(Object command) {
>>        // The instanceof can be avoided, but that would require modifying the
>>        // Command clas tree and that would require too much effort right
>>        // now.
>>        if (command instanceof ConnectionInfo) {
>>            ConnectionInfo connectionInfo = (ConnectionInfo)command;
>>            connectionInfo.setTransportContext(getPeerCertificates());
>>        } 
>>        super.doConsume(command);
>>    }
>> 
>>    /**
>>     * @return peer certificate chain associated with the ssl socket
>>     */
>>    public X509Certificate[] getPeerCertificates() {
>>        
>>        SSLSocket sslSocket = (SSLSocket)this.socket;
>> 
>>        SSLSession sslSession = sslSocket.getSession();
>> 
>>        X509Certificate[] clientCertChain;
>>        try {
>>            clientCertChain = (X509Certificate[])sslSession.getPeerCertificates();
>>        } catch (SSLPeerUnverifiedException e) {
>>            clientCertChain = null;
>>        }
>>        
>>        return clientCertChain;
>>    }
>> 
>> In the new NIOSSLTransport there is nothing about the certificates.
>> I tried to add the old code, but obviously it does not work (the sslSession has not
certificates)..
>> 
>> How can I solve this problem?
>> 
>> Thank you
>> Francesco Romano
>
>
>
>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message