Index: api/src/main/java/org/sakaiproject/util/RequestFilter.java =================================================================== --- api/src/main/java/org/sakaiproject/util/RequestFilter.java (revision 57173) +++ api/src/main/java/org/sakaiproject/util/RequestFilter.java (working copy) @@ -199,6 +199,12 @@ /** The name of the system property that will be used when setting the value of the session cookie. */ protected static final String SAKAI_SERVERID = "sakai.serverId"; + /** The name of the system property that will be used when setting the name of the session cookie. */ + protected static final String SAKAI_COOKIE_NAME = "sakai.cookieName"; + + /** The name of the system property that will be used when setting the domain of the session cookie. */ + protected static final String SAKAI_COOKIE_DOMAIN = "sakai.cookieDomain"; + /** If true, we deliver the Sakai wide session as the Http session for each request. */ protected int m_sakaiHttpSession = TOOL_SESSION; @@ -1023,6 +1029,17 @@ Session s = null; String sessionId = null; + // retrieve the configured cookie name, if any + String cookieName = System.getProperty(SAKAI_COOKIE_NAME); + // if not configured, set to default + if (cookieName == null) + { + cookieName = SESSION_COOKIE; + } + // retrieve the configured cookie domain + // if not configured, we will ignore setting the cookie domain property later + String cookieDomain = System.getProperty(SAKAI_COOKIE_DOMAIN); + // compute the session cookie suffix, based on this configured server id String suffix = System.getProperty(SAKAI_SERVERID); if ((suffix == null) || (suffix.length() == 0)) @@ -1046,7 +1063,7 @@ sessionId = req.getParameter(ATTR_SESSION); // find our session id from our cookie - Cookie c = findCookie(req, SESSION_COOKIE, suffix); + Cookie c = findCookie(req, cookieName, suffix); if (sessionId == null && c != null) { @@ -1124,9 +1141,13 @@ if ((s == null) && (c != null)) { // remove the cookie - c = new Cookie(SESSION_COOKIE, ""); + c = new Cookie(cookieName, ""); c.setPath("/"); c.setMaxAge(0); + if (cookieDomain != null) + { + c.setDomain(cookieDomain); + } res.addCookie(c); } @@ -1140,9 +1161,13 @@ if ((c == null) || (!c.getValue().equals(sessionId))) { // set the cookie - c = new Cookie(SESSION_COOKIE, sessionId); + c = new Cookie(cookieName, sessionId); c.setPath("/"); c.setMaxAge(-1); + if (cookieDomain != null) + { + c.setDomain(cookieDomain); + } if (req.isSecure() == true) { c.setSecure(true); Index: component-manager/src/main/bundle/org/sakaiproject/config/sakai-configuration.xml =================================================================== --- component-manager/src/main/bundle/org/sakaiproject/config/sakai-configuration.xml (revision 57173) +++ component-manager/src/main/bundle/org/sakaiproject/config/sakai-configuration.xml (working copy) @@ -33,6 +33,8 @@ + +