From c3af838e2781c1808581a3007679a8fab6f30f8b Mon Sep 17 00:00:00 2001 From: markt Date: Fri, 29 Apr 2011 17:49:37 +0000 Subject: [PATCH] Expose a container event for changing the session ID git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1097899 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/Context.java | 5 +++++ java/org/apache/catalina/session/ManagerBase.java | 4 ++++ webapps/docs/changelog.xml | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/java/org/apache/catalina/Context.java b/java/org/apache/catalina/Context.java index 6adfed8b8..90473d5ed 100644 --- a/java/org/apache/catalina/Context.java +++ b/java/org/apache/catalina/Context.java @@ -87,6 +87,11 @@ public interface Context extends Container { */ public static final String CLEAR_WELCOME_FILES_EVENT = "clearWelcomeFiles"; + /** + * Container event for changing the ID of a session. + */ + public static final String CHANGE_SESSION_ID_EVENT = "changeSessionId"; + // ------------------------------------------------------------- Properties /** diff --git a/java/org/apache/catalina/session/ManagerBase.java b/java/org/apache/catalina/session/ManagerBase.java index f9604d179..636377517 100644 --- a/java/org/apache/catalina/session/ManagerBase.java +++ b/java/org/apache/catalina/session/ManagerBase.java @@ -768,7 +768,11 @@ public abstract class ManagerBase extends LifecycleMBeanBase */ @Override public void changeSessionId(Session session) { + String oldId = session.getIdInternal(); session.setId(generateSessionId(), false); + String newId = session.getIdInternal(); + container.fireContainerEvent(Context.CHANGE_SESSION_ID_EVENT, + new String[] {oldId, newId}); } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index c1a5647ae..7cea543e4 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -90,6 +90,10 @@ Ensure response is committed when AsyncContext#complete() is called. (markt) + + Add a container event that is fired when a session's ID is changed, + e.g. on authentication. (markt) + -- 2.11.0