From commits-return-4916-apmail-directory-commits-archive=directory.apache.org@directory.apache.org Tue Jun 07 06:47:09 2005 Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 99561 invoked from network); 7 Jun 2005 06:47:09 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 7 Jun 2005 06:47:09 -0000 Received: (qmail 76119 invoked by uid 500); 7 Jun 2005 06:47:08 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 76048 invoked by uid 500); 7 Jun 2005 06:47:08 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 76034 invoked by uid 99); 7 Jun 2005 06:47:08 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Mon, 06 Jun 2005 23:47:07 -0700 Received: (qmail 99424 invoked by uid 65534); 7 Jun 2005 06:46:51 -0000 Message-ID: <20050607064651.99423.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: svn commit: r188719 - in /directory/network: branches/0.7/src/java/org/apache/mina/io/filter/SSLFilter.java branches/dirmina-39/src/java/org/apache/mina/filter/SSLFilter.java trunk/src/java/org/apache/mina/filter/SSLFilter.java Date: Tue, 07 Jun 2005 06:46:51 -0000 To: commits@directory.apache.org From: trustin@apache.org X-Mailer: svnmailer-1.0.0-dev X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: trustin Date: Mon Jun 6 23:46:50 2005 New Revision: 188719 URL: http://svn.apache.org/viewcvs?rev=3D188719&view=3Drev Log: * Made SSLFilter to store SSLHandler as a session attribute * Added SSLFilter.getSSLSession( IoSession ) so that users can get SSLSessi= ons not using IoSession.getAttribute() Modified: directory/network/branches/0.7/src/java/org/apache/mina/io/filter/SSLFi= lter.java directory/network/branches/dirmina-39/src/java/org/apache/mina/filter/S= SLFilter.java directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java Modified: directory/network/branches/0.7/src/java/org/apache/mina/io/filter= /SSLFilter.java URL: http://svn.apache.org/viewcvs/directory/network/branches/0.7/src/java/= org/apache/mina/io/filter/SSLFilter.java?rev=3D188719&r1=3D188718&r2=3D1887= 19&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- directory/network/branches/0.7/src/java/org/apache/mina/io/filter/SSLFi= lter.java (original) +++ directory/network/branches/0.7/src/java/org/apache/mina/io/filter/SSLFi= lter.java Mon Jun 6 23:46:50 2005 @@ -18,8 +18,6 @@ */ package org.apache.mina.io.filter; =20 -import java.util.IdentityHashMap; -import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; =20 @@ -27,6 +25,7 @@ import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLException; import javax.net.ssl.SSLHandshakeException; +import javax.net.ssl.SSLSession; =20 import org.apache.mina.common.ByteBuffer; import org.apache.mina.io.IoFilterAdapter; @@ -47,10 +46,12 @@ public class SSLFilter extends IoFilterAdapter { /** - * Session attribute key that stores underlying {@link javax.net.ssl.S= SLSession} + * Session attribute key that stores underlying {@link SSLSession} * for each session. */ public static final String SSL_SESSION =3D SSLFilter.class.getName() += ".SSLSession"; + =20 + private static final String SSL_HANDLER =3D SSLFilter.class.getName() = + ".SSLHandler"; =20 private static final Logger log =3D Logger.getLogger( SSLFilter.class.= getName() ); =20 @@ -69,9 +70,6 @@ // SSL Context private SSLContext sslContext; =20 - // Map used to map SSLHandler objects per session (key is IoSession) - private Map sslSessionHandlerMap =3D new IdentityHashMap(); - private boolean client; private boolean needClientAuth; private boolean wantClientAuth; @@ -90,6 +88,16 @@ =20 this.sslContext =3D sslContext; } + =20 + /** + * Returns the underlying {@link SSLSession} for the specified session. + *=20 + * @return null if no {@link SSLSession} is initialized yet. + */ + public SSLSession getSSLSession( IoSession session ) + { + return ( SSLSession ) session.getAttribute( SSL_SESSION ); + } =20 /** * Returns true if the engine is set to use client mode @@ -478,12 +486,12 @@ =20 private SSLHandler createSSLSessionHandler( NextFilter nextFilter, IoS= ession session ) throws SSLException { - SSLHandler handler =3D ( SSLHandler ) sslSessionHandlerMap.get( se= ssion ); + SSLHandler handler =3D getSSLSessionHandler( session ); if( handler =3D=3D null ) { - synchronized( sslSessionHandlerMap ) + synchronized( session ) { - handler =3D ( SSLHandler ) sslSessionHandlerMap.get( sessi= on ); + handler =3D getSSLSessionHandler( session ); if( handler =3D=3D null ) { boolean done =3D false; @@ -491,7 +499,7 @@ { handler =3D new SSLHandler( this, sslContext, session ); - sslSessionHandlerMap.put( session, handler ); + session.setAttribute( SSL_HANDLER, handler ); handler.doHandshake( nextFilter ); done =3D true; } @@ -499,7 +507,7 @@ { if( !done ) { - sslSessionHandlerMap.remove( session ); + session.removeAttribute( SSL_HANDLER ); } } } @@ -511,14 +519,11 @@ =20 private SSLHandler getSSLSessionHandler( IoSession session ) { - return ( SSLHandler ) sslSessionHandlerMap.get( session ); + return ( SSLHandler ) session.getAttribute( SSL_HANDLER ); } =20 private void removeSSLSessionHandler( IoSession session ) { - synchronized( sslSessionHandlerMap ) - { - sslSessionHandlerMap.remove( session ); - } + session.removeAttribute( SSL_HANDLER ); } } Modified: directory/network/branches/dirmina-39/src/java/org/apache/mina/fi= lter/SSLFilter.java URL: http://svn.apache.org/viewcvs/directory/network/branches/dirmina-39/sr= c/java/org/apache/mina/filter/SSLFilter.java?rev=3D188719&r1=3D188718&r2=3D= 188719&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- directory/network/branches/dirmina-39/src/java/org/apache/mina/filter/S= SLFilter.java (original) +++ directory/network/branches/dirmina-39/src/java/org/apache/mina/filter/S= SLFilter.java Mon Jun 6 23:46:50 2005 @@ -18,8 +18,6 @@ */ package org.apache.mina.filter; =20 -import java.util.IdentityHashMap; -import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; =20 @@ -27,6 +25,7 @@ import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLException; import javax.net.ssl.SSLHandshakeException; +import javax.net.ssl.SSLSession; =20 import org.apache.mina.common.ByteBuffer; import org.apache.mina.common.ByteBufferProxy; @@ -49,19 +48,18 @@ public class SSLFilter extends IoFilterAdapter { /** - * Session attribute key that stores underlying {@link javax.net.ssl.S= SLSession} + * Session attribute key that stores underlying {@link SSLSession} * for each session. */ public static final String SSL_SESSION =3D SSLFilter.class.getName() += ".SSLSession"; + =20 + private static final String SSL_HANDLER =3D SSLFilter.class.getName() = + ".SSLHandler"; =20 private static final Logger log =3D Logger.getLogger( SSLFilter.class.= getName() ); =20 // SSL Context private SSLContext sslContext; =20 - // Map used to map SSLHandler objects per session (key is IoSession) - private Map sslSessionHandlerMap =3D new IdentityHashMap(); - private boolean client; private boolean needClientAuth; private boolean wantClientAuth; @@ -80,6 +78,16 @@ =20 this.sslContext =3D sslContext; } + =20 + /** + * Returns the underlying {@link SSLSession} for the specified session. + *=20 + * @return null if no {@link SSLSession} is initialized yet. + */ + public SSLSession getSSLSession( IoSession session ) + { + return ( SSLSession ) session.getAttribute( SSL_SESSION ); + } =20 /** * Returns true if the engine is set to use client mode @@ -480,12 +488,12 @@ =20 private SSLHandler createSSLSessionHandler( NextFilter nextFilter, IoS= ession session ) throws SSLException { - SSLHandler handler =3D ( SSLHandler ) sslSessionHandlerMap.get( se= ssion ); + SSLHandler handler =3D getSSLSessionHandler( session ); if( handler =3D=3D null ) { - synchronized( sslSessionHandlerMap ) + synchronized( session ) { - handler =3D ( SSLHandler ) sslSessionHandlerMap.get( sessi= on ); + handler =3D getSSLSessionHandler( session ); if( handler =3D=3D null ) { boolean done =3D false; @@ -493,7 +501,7 @@ { handler =3D new SSLHandler( this, sslContext, session ); - sslSessionHandlerMap.put( session, handler ); + session.setAttribute( SSL_HANDLER, handler ); handler.doHandshake( nextFilter ); done =3D true; } @@ -501,7 +509,7 @@ { if( !done ) { - sslSessionHandlerMap.remove( session ); + session.removeAttribute( SSL_HANDLER ); } } } @@ -513,15 +521,12 @@ =20 private SSLHandler getSSLSessionHandler( IoSession session ) { - return ( SSLHandler ) sslSessionHandlerMap.get( session ); + return ( SSLHandler ) session.getAttribute( SSL_HANDLER ); } =20 private void removeSSLSessionHandler( IoSession session ) { - synchronized( sslSessionHandlerMap ) - { - sslSessionHandlerMap.remove( session ); - } + session.removeAttribute( SSL_HANDLER ); } =20 private static class EncryptedBuffer extends ByteBufferProxy Modified: directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter= .java URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apa= che/mina/filter/SSLFilter.java?rev=3D188719&r1=3D188718&r2=3D188719&view=3D= diff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java = (original) +++ directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java = Mon Jun 6 23:46:50 2005 @@ -18,8 +18,6 @@ */ package org.apache.mina.filter; =20 -import java.util.IdentityHashMap; -import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; =20 @@ -27,6 +25,7 @@ import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLException; import javax.net.ssl.SSLHandshakeException; +import javax.net.ssl.SSLSession; =20 import org.apache.mina.common.ByteBuffer; import org.apache.mina.common.ByteBufferProxy; @@ -47,19 +46,18 @@ public class SSLFilter extends IoFilterAdapter { /** - * Session attribute key that stores underlying {@link javax.net.ssl.S= SLSession} + * Session attribute key that stores underlying {@link SSLSession} * for each session. */ public static final String SSL_SESSION =3D SSLFilter.class.getName() += ".SSLSession"; + =20 + private static final String SSL_HANDLER =3D SSLFilter.class.getName() = + ".SSLHandler"; =20 private static final Logger log =3D Logger.getLogger( SSLFilter.class.= getName() ); =20 // SSL Context private SSLContext sslContext; =20 - // Map used to map SSLHandler objects per session (key is IoSession) - private Map sslSessionHandlerMap =3D new IdentityHashMap(); - private boolean client; private boolean needClientAuth; private boolean wantClientAuth; @@ -78,6 +76,16 @@ =20 this.sslContext =3D sslContext; } + =20 + /** + * Returns the underlying {@link SSLSession} for the specified session. + *=20 + * @return null if no {@link SSLSession} is initialized yet. + */ + public SSLSession getSSLSession( IoSession session ) + { + return ( SSLSession ) session.getAttribute( SSL_SESSION ); + } =20 /** * Returns true if the engine is set to use client mode @@ -476,12 +484,12 @@ =20 private SSLHandler createSSLSessionHandler( NextFilter nextFilter, IoS= ession session ) throws SSLException { - SSLHandler handler =3D ( SSLHandler ) sslSessionHandlerMap.get( se= ssion ); + SSLHandler handler =3D getSSLSessionHandler( session ); if( handler =3D=3D null ) { - synchronized( sslSessionHandlerMap ) + synchronized( session ) { - handler =3D ( SSLHandler ) sslSessionHandlerMap.get( sessi= on ); + handler =3D getSSLSessionHandler( session ); if( handler =3D=3D null ) { boolean done =3D false; @@ -489,7 +497,7 @@ { handler =3D new SSLHandler( this, sslContext, session ); - sslSessionHandlerMap.put( session, handler ); + session.setAttribute( SSL_HANDLER, handler ); handler.doHandshake( nextFilter ); done =3D true; } @@ -497,7 +505,7 @@ { if( !done ) { - sslSessionHandlerMap.remove( session ); + session.removeAttribute( SSL_HANDLER ); } } } @@ -509,15 +517,12 @@ =20 private SSLHandler getSSLSessionHandler( IoSession session ) { - return ( SSLHandler ) sslSessionHandlerMap.get( session ); + return ( SSLHandler ) session.getAttribute( SSL_HANDLER ); } =20 private void removeSSLSessionHandler( IoSession session ) { - synchronized( sslSessionHandlerMap ) - { - sslSessionHandlerMap.remove( session ); - } + session.removeAttribute( SSL_HANDLER ); } =20 private static class EncryptedBuffer extends ByteBufferProxy