Author: rjung Date: Sat Jun 19 10:03:18 2010 New Revision: 956210 URL: http://svn.apache.org/viewvc?rev=956210&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48379
Make session cookie name, domain and path configurable per context. Backport of r953025 from TC6. Caution: this change makes OACC incompatible with TC 6 prior to 6.0.27. Modified: tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java 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=956210&r1=956209&r2=956210&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 Sat Jun 19 10:03:18 2010 @@ -459,25 +459,40 @@ public class JvmRouteBinderValve extends Context context = request.getContext(); if (context.getCookies()) { // set a new session cookie - Cookie newCookie = new Cookie(Globals.SESSION_COOKIE_NAME, - sessionId); + String scName = context.getSessionCookieName(); + if (scName == null) { + scName = Globals.SESSION_COOKIE_NAME; + } + Cookie newCookie = new Cookie(scName, sessionId); + newCookie.setMaxAge(-1); + String contextPath = null; - if (!response.getConnector().getEmptySessionPath() - && (context != null)) { - contextPath = context.getEncodedPath(); + if (!response.getConnector().getEmptySessionPath() && + (context != null)) { + if (context.getSessionCookiePath() != null) { + contextPath = context.getSessionCookiePath(); + } else { + contextPath = context.getEncodedPath(); + } } if ((contextPath != null) && (contextPath.length() > 0)) { newCookie.setPath(contextPath); } else { newCookie.setPath("/"); } + + if (context.getSessionCookieDomain() != null) { + newCookie.setDomain(context.getSessionCookieDomain()); + } + if (request.isSecure()) { newCookie.setSecure(true); } + if (log.isDebugEnabled()) { Object[] args = new Object[] {sessionId, - Globals.SESSION_COOKIE_NAME, + newCookie.getName(), newCookie.getPath(), new Boolean(newCookie.getSecure()), new Boolean(context.getUseHttpOnly())}; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org