Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 55232 invoked from network); 18 Apr 2011 01:44:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 18 Apr 2011 01:44:24 -0000 Received: (qmail 5311 invoked by uid 500); 18 Apr 2011 01:44:23 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 5251 invoked by uid 500); 18 Apr 2011 01:44:23 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 5242 invoked by uid 99); 18 Apr 2011 01:44:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Apr 2011 01:44:23 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.9] (HELO minotaur.apache.org) (140.211.11.9) by apache.org (qpsmtpd/0.29) with SMTP; Mon, 18 Apr 2011 01:44:15 +0000 Received: (qmail 55187 invoked by uid 99); 18 Apr 2011 01:43:53 -0000 Received: from localhost.apache.org (HELO mail-wy0-f173.google.com) (127.0.0.1) (smtp-auth username kfujino, mechanism plain) by minotaur.apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Apr 2011 01:43:53 +0000 Received: by wyb42 with SMTP id 42so4779486wyb.18 for ; Sun, 17 Apr 2011 18:43:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.142.35 with SMTP id h35mr418851wej.31.1303091031060; Sun, 17 Apr 2011 18:43:51 -0700 (PDT) Received: by 10.217.3.69 with HTTP; Sun, 17 Apr 2011 18:43:51 -0700 (PDT) In-Reply-To: <20110416222529.4A7B923889E1@eris.apache.org> References: <20110416222529.4A7B923889E1@eris.apache.org> Date: Mon, 18 Apr 2011 10:43:51 +0900 Message-ID: Subject: Re: svn commit: r1094069 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/ha/session/ java/org/apache/catalina/manager/ java/org/apache/catalina/session/ webapps/docs/ From: Keiichi Fujino To: Tomcat Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org A primary node is never notified to the listener when changing the session ID during authentication. Should I not notify the listener if non-primary node receives EVT_CHANGE_SESSION_ID? Index: java/org/apache/catalina/ha/session/DeltaManager.java =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 --- java/org/apache/catalina/ha/session/DeltaManager.java (revision 1094215= ) +++ java/org/apache/catalina/ha/session/DeltaManager.java (working copy) @@ -1463,7 +1463,7 @@ if (session !=3D null) { String newSessionID =3D deserializeSessionId(msg.getSession())= ; session.setPrimarySession(false); - session.setId(newSessionID, notifyListenersOnReplication); + session.setId(newSessionID, false); } } Is JvmRouteSessionIDBinderListener also the same? Index: java/org/apache/catalina/ha/session/JvmRouteSessionIDBinderListener.= java =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 --- java/org/apache/catalina/ha/session/JvmRouteSessionIDBinderListener.jav= a (revision 1037582) +++ java/org/apache/catalina/ha/session/JvmRouteSessionIDBinderListener.jav= a (working copy) @@ -144,7 +144,7 @@ Session session =3D context.getManager().findSessi= on( sessionmsg.getOrignalSessionID()); if (session !=3D null) { - session.setId(sessionmsg.getBackupSessionID())= ; + session.setId(sessionmsg.getBackupSessionID(), false); } else if (log.isInfoEnabled()) log.info(sm.getString("jvmRoute.lostSession", sessionmsg.getOrignalSessionID(), 2011/4/17 : > Author: markt > Date: Sat Apr 16 22:25:28 2011 > New Revision: 1094069 > > URL: http://svn.apache.org/viewvc?rev=3D1094069&view=3Drev > Log: > Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=3D51042 > Don't trigger session creation listeners when changing the session ID dur= ing authentication. > > Modified: > =A0 =A0tomcat/trunk/java/org/apache/catalina/Session.java > =A0 =A0tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java > =A0 =A0tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java > =A0 =A0tomcat/trunk/java/org/apache/catalina/ha/session/JvmRouteBinderVal= ve.java > =A0 =A0tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.ja= va > =A0 =A0tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java > =A0 =A0tomcat/trunk/java/org/apache/catalina/session/StandardSession.java > =A0 =A0tomcat/trunk/webapps/docs/changelog.xml > > Modified: tomcat/trunk/java/org/apache/catalina/Session.java > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/S= ession.java?rev=3D1094069&r1=3D1094068&r2=3D1094069&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 > --- tomcat/trunk/java/org/apache/catalina/Session.java (original) > +++ tomcat/trunk/java/org/apache/catalina/Session.java Sat Apr 16 22:25:2= 8 2011 > @@ -118,7 +118,8 @@ public interface Session { > > > =A0 =A0 /** > - =A0 =A0 * Set the session identifier for this session. > + =A0 =A0 * Set the session identifier for this session and notifies any = associated > + =A0 =A0 * listeners that a new session has been created. > =A0 =A0 =A0* > =A0 =A0 =A0* @param id The new session identifier > =A0 =A0 =A0*/ > @@ -126,6 +127,17 @@ public interface Session { > > > =A0 =A0 /** > + =A0 =A0 * Set the session identifier for this session and optionally no= tifies any > + =A0 =A0 * associated listeners that a new session has been created. > + =A0 =A0 * > + =A0 =A0 * @param id =A0 =A0 =A0 =A0The new session identifier > + =A0 =A0 * @param notify =A0 =A0Should any associated listeners be notif= ied that a new > + =A0 =A0 * =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0session has been c= reated? > + =A0 =A0 */ > + =A0 =A0public void setId(String id, boolean notify); > + > + > + =A0 =A0/** > =A0 =A0 =A0* Return descriptive information about this Session implementa= tion and > =A0 =A0 =A0* the corresponding version number, in the format > =A0 =A0 =A0* <description>/<version>. > > Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.j= ava > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/h= a/session/DeltaManager.java?rev=3D1094069&r1=3D1094068&r2=3D1094069&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 > --- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java (o= riginal) > +++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java Sa= t Apr 16 22:25:28 2011 > @@ -1387,12 +1387,7 @@ public CatalinaCluster getCluster() { > =A0 =A0 =A0 =A0 // use container maxInactiveInterval so that session will= expire correctly in case of primary transfer > =A0 =A0 =A0 =A0 session.setMaxInactiveInterval(getMaxInactiveInterval()); > =A0 =A0 =A0 =A0 session.access(); > - =A0 =A0 =A0 =A0if(notifySessionListenersOnReplication) { > - =A0 =A0 =A0 =A0 =A0 =A0session.setId(msg.getSessionID()); > - =A0 =A0 =A0 =A0} else { > - =A0 =A0 =A0 =A0 =A0 =A0session.setIdInternal(msg.getSessionID()); > - =A0 =A0 =A0 =A0 =A0 =A0add(session); > - =A0 =A0 =A0 =A0} > + =A0 =A0 =A0 =A0session.setId(msg.getSessionID(), notifySessionListeners= OnReplication); > =A0 =A0 =A0 =A0 session.resetDeltaRequest(); > =A0 =A0 =A0 =A0 session.endAccess(); > > @@ -1468,12 +1463,7 @@ public CatalinaCluster getCluster() { > =A0 =A0 =A0 =A0 if (session !=3D null) { > =A0 =A0 =A0 =A0 =A0 =A0 String newSessionID =3D deserializeSessionId(msg.= getSession()); > =A0 =A0 =A0 =A0 =A0 =A0 session.setPrimarySession(false); > - =A0 =A0 =A0 =A0 =A0 =A0if (notifySessionListenersOnReplication) { > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0session.setId(newSessionID); > - =A0 =A0 =A0 =A0 =A0 =A0} else { > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0session.setIdInternal(newSessionID); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0add(session); > - =A0 =A0 =A0 =A0 =A0 =A0} > + =A0 =A0 =A0 =A0 =A0 =A0session.setId(newSessionID, notifyListenersOnRep= lication); > =A0 =A0 =A0 =A0 } > =A0 =A0 } > > > Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.j= ava > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/h= a/session/DeltaSession.java?rev=3D1094069&r1=3D1094068&r2=3D1094069&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 > --- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java (o= riginal) > +++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaSession.java Sa= t Apr 16 22:25:28 2011 > @@ -244,17 +244,17 @@ public class DeltaSession extends Standa > =A0 =A0 =A0 =A0 this.isPrimarySession =3D primarySession; > =A0 =A0 } > > + > =A0 =A0 /** > - =A0 =A0 * Set the session identifier for this session without notify li= steners. > - =A0 =A0 * > - =A0 =A0 * @param id > - =A0 =A0 * =A0 =A0 =A0 =A0 =A0 =A0The new session identifier > + =A0 =A0 * {@inheritDoc} > =A0 =A0 =A0*/ > - =A0 =A0public void setIdInternal(String id) { > - =A0 =A0 =A0 =A0this.id =3D id; > + =A0 =A0@Override > + =A0 =A0public void setId(String id, boolean notify) { > + =A0 =A0 =A0 =A0super.setId(id, notify); > =A0 =A0 =A0 =A0 resetDeltaRequest(); > =A0 =A0 } > > + > =A0 =A0 /** > =A0 =A0 =A0* Set the session identifier for this session. > =A0 =A0 =A0* > > Modified: tomcat/trunk/java/org/apache/catalina/ha/session/JvmRouteBinder= Valve.java > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/h= a/session/JvmRouteBinderValve.java?rev=3D1094069&r1=3D1094068&r2=3D1094069&= 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 > --- tomcat/trunk/java/org/apache/catalina/ha/session/JvmRouteBinderValve.= java (original) > +++ tomcat/trunk/java/org/apache/catalina/ha/session/JvmRouteBinderValve.= java Sat Apr 16 22:25:28 2011 > @@ -359,8 +359,7 @@ public class JvmRouteBinderValve extends > =A0 =A0 protected void changeSessionID(Request request, String sessionId, > =A0 =A0 =A0 =A0 =A0 =A0 String newSessionID, Session catalinaSession) { > =A0 =A0 =A0 =A0 fireLifecycleEvent("Before session migration", catalinaSe= ssion); > - =A0 =A0 =A0 =A0// FIXME: setId trigger session Listener, but only chanc= e to register manager with correct id! > - =A0 =A0 =A0 =A0catalinaSession.setId(newSessionID); > + =A0 =A0 =A0 =A0catalinaSession.setId(newSessionID, false); > =A0 =A0 =A0 =A0 // FIXME: Why we remove change data from other running re= quest? > =A0 =A0 =A0 =A0 // setId also trigger resetDeltaRequest!! > =A0 =A0 =A0 =A0 if (catalinaSession instanceof DeltaSession) > > Modified: tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession= .java > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/m= anager/DummyProxySession.java?rev=3D1094069&r1=3D1094068&r2=3D1094069&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 > --- tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.java = (original) > +++ tomcat/trunk/java/org/apache/catalina/manager/DummyProxySession.java = Sat Apr 16 22:25:28 2011 > @@ -169,6 +169,12 @@ public class DummyProxySession implement > =A0 =A0 } > > =A0 =A0 @Override > + =A0 =A0public void setId(String id, boolean notify) { > + =A0 =A0 =A0 =A0this.sessionId =3D id; > + =A0 =A0 =A0 =A0// Ignore notify > + =A0 =A0} > + > + =A0 =A0@Override > =A0 =A0 public void setManager(Manager manager) { > =A0 =A0 =A0 =A0 // NOOP > =A0 =A0 } > > Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/s= ession/ManagerBase.java?rev=3D1094069&r1=3D1094068&r2=3D1094069&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 > --- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (origi= nal) > +++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Sat Ap= r 16 22:25:28 2011 > @@ -768,7 +768,7 @@ public abstract class ManagerBase extend > =A0 =A0 =A0*/ > =A0 =A0 @Override > =A0 =A0 public void changeSessionId(Session session) { > - =A0 =A0 =A0 =A0session.setId(generateSessionId()); > + =A0 =A0 =A0 =A0session.setId(generateSessionId(), false); > =A0 =A0 } > > > > Modified: tomcat/trunk/java/org/apache/catalina/session/StandardSession.j= ava > URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/s= ession/StandardSession.java?rev=3D1094069&r1=3D1094068&r2=3D1094069&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 > --- tomcat/trunk/java/org/apache/catalina/session/StandardSession.java (o= riginal) > +++ tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Sa= t Apr 16 22:25:28 2011 > @@ -374,6 +374,15 @@ public class StandardSession implements > =A0 =A0 =A0*/ > =A0 =A0 @Override > =A0 =A0 public void setId(String id) { > + =A0 =A0 =A0 =A0setId(id, true); > + =A0 =A0} > + > + > + =A0 =A0/** > + =A0 =A0 * {@inheritDoc} > + =A0 =A0 */ > + =A0 =A0@Override > + =A0 =A0public void setId(String id, boolean notify) { > > =A0 =A0 =A0 =A0 if ((this.id !=3D null) && (manager !=3D null)) > =A0 =A0 =A0 =A0 =A0 =A0 manager.remove(this); > @@ -382,7 +391,10 @@ public class StandardSession implements > > =A0 =A0 =A0 =A0 if (manager !=3D null) > =A0 =A0 =A0 =A0 =A0 =A0 manager.add(this); > - =A0 =A0 =A0 =A0tellNew(); > + > + =A0 =A0 =A0 =A0if (notify) { > + =A0 =A0 =A0 =A0 =A0 =A0tellNew(); > + =A0 =A0 =A0 =A0} > =A0 =A0 } > > > > Modified: tomcat/trunk/webapps/docs/changelog.xml > URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml= ?rev=3D1094069&r1=3D1094068&r2=3D1094069&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 > --- tomcat/trunk/webapps/docs/changelog.xml (original) > +++ tomcat/trunk/webapps/docs/changelog.xml Sat Apr 16 22:25:28 2011 > @@ -65,6 +65,10 @@ > =A0 =A0 =A0 =A0 51038: Ensure that asynchronous requests are i= ncluded in > =A0 =A0 =A0 =A0 access logs. (markt) > =A0 =A0 =A0 > + =A0 =A0 =A0 > + =A0 =A0 =A0 =A051042: Don't trigger session creation li= steners when a > + =A0 =A0 =A0 =A0session ID is changed as part of the authentication proc= ess. (markt) > + =A0 =A0 =A0 > =A0 =A0 > =A0 > =A0 > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org > For additional commands, e-mail: dev-help@tomcat.apache.org > > --=20 Keiichi.Fujino --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org