Author: rjung Date: Wed Nov 26 17:12:12 2014 New Revision: 1641859 URL: http://svn.apache.org/r1641859 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51042 Don't notify session creation listeners when changing session ID on authentication
Backport of r1135497 from TC6. Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml?rev=1641859&r1=1641858&r2=1641859&view=diff ============================================================================== --- tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml (original) +++ tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml Wed Nov 26 17:12:12 2014 @@ -32,6 +32,10 @@ <section name="Tomcat OACC 0.1 (rjung)"> <subsection name="Cluster"> <fix> + <bug>51042</bug>: Don't trigger session creation listeners when a + session ID is changed as part of the authentication process. (markt) + </fix> + <fix> <bug>50950</bug>: Correct possible NotSerializableException for an authenticated session when running with a security manager. (markt) </fix> Modified: tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java?rev=1641859&r1=1641858&r2=1641859&view=diff ============================================================================== --- tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java (original) +++ tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java Wed Nov 26 17:12:12 2014 @@ -1677,12 +1677,7 @@ public class DeltaManager extends Cluste session.setMaxInactiveInterval(getMaxInactiveInterval()); session.setExpireTolerance(this.expireTolerance); session.access(); - if(notifySessionListenersOnReplication) { - session.setId(msg.getSessionID()); - } else { - session.setIdInternal(msg.getSessionID()); - add(session); - } + session.setId(msg.getSessionID(), notifySessionListenersOnReplication); session.resetDeltaRequest(); session.endAccess(); @@ -1758,12 +1753,7 @@ public class DeltaManager extends Cluste if (session != null) { String newSessionID = deserializeSessionId(msg.getSession()); session.setPrimarySession(false); - if(notifySessionListenersOnReplication) { - session.setId(newSessionID); - } else { - session.setIdInternal(newSessionID); - add(session); - } + session.setId(newSessionID, notifyListenersOnReplication); } } Modified: tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java?rev=1641859&r1=1641858&r2=1641859&view=diff ============================================================================== --- tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java (original) +++ tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaSession.java Wed Nov 26 17:12:12 2014 @@ -160,17 +160,17 @@ public class DeltaSession extends Standa this.isPrimarySession = primarySession; } + /** - * Set the session identifier for this session without notify listeners. - * - * @param id - * The new session identifier + * {@inheritDoc} */ - public void setIdInternal(String id) { - this.id = id; + @Override + public void setId(String id, boolean notify) { + super.setId(id, notify); resetDeltaRequest(); } + /** * Set the session identifier for this session. * Modified: tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java URL: http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java?rev=1641859&r1=1641858&r2=1641859&view=diff ============================================================================== --- tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java (original) +++ tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java Wed Nov 26 17:12:12 2014 @@ -376,8 +376,7 @@ public class JvmRouteBinderValve extends Response response, String sessionId, String newSessionID, Session catalinaSession) { lifecycle.fireLifecycleEvent("Before session migration", catalinaSession); - // FIXME: setId trigger session Listener, but only chance to registiert manager with correct id! - catalinaSession.setId(newSessionID); + catalinaSession.setId(newSessionID, false); // FIXME: Why we remove change data from other running request? // setId also trigger resetDeltaRequest!! if (catalinaSession instanceof DeltaSession) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org