You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2014/11/26 18:12:13 UTC
svn commit: r1641859 - in /tomcat/sandbox/tomcat-oacc/trunk: docs/
src/share/org/apache/catalina/cluster/session/
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org