Author: mturk
Date: Tue Oct  7 03:56:27 2008
New Revision: 702431

URL: http://svn.apache.org/viewvc?rev=702431&view=rev
Log:
Allow JkStripSession to have optional session path identifier different then 
default ;jsessionid

Modified:
    tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c
    tomcat/connectors/trunk/jk/xdocs/reference/apache.xml

Modified: tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c?rev=702431&r1=702430&r2=702431&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c (original)
+++ tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Tue Oct  7 03:56:27 
2008
@@ -206,6 +206,7 @@
     int exclude_options;
 
     int strip_session;
+    char *strip_session_name;
     /*
      * Environment variables support
      */
@@ -1335,18 +1336,29 @@
 /*
  * JkStripSession directive handling
  *
- * JkStripSession On/Off
+ * JkStripSession On/Off [session path identifier]
  */
 
-static const char *jk_set_strip_session(cmd_parms * cmd, void *dummy, int flag)
+static const char *jk_set_strip_session(cmd_parms * cmd, void *dummy,
+                                        const char *flag, const char *name)
 {
     server_rec *s = cmd->server;
     jk_server_conf_t *conf =
         (jk_server_conf_t *) ap_get_module_config(s->module_config,
                                                   &jk_module);
 
-    /* Set up our value */
-    conf->strip_session = flag ? JK_TRUE : JK_FALSE;
+    if (strcasecmp(flag, "on") && strcasecmp(flag, "off")) {
+        return "JkStripSession must be On or Off";
+    }
+    else {
+        conf->strip_session = strcasecmp(flag, "off") ? JK_TRUE : JK_FALSE;
+    }
+
+    /* Check for optional path value */
+    if (name)
+        conf->strip_session_name = apr_pstrdup(cmd->pool, name);
+    else
+        conf->strip_session_name = apr_pstrdup(cmd->pool, 
JK_PATH_SESSION_IDENTIFIER);
 
     return NULL;
 }
@@ -2086,8 +2098,8 @@
      * JkStripSession specifies if mod_jk should strip the ;jsessionid
      * from the unmapped urls
      */
-    AP_INIT_FLAG("JkStripSession", jk_set_strip_session, NULL, RSRC_CONF,
-                 "Should the server strip the jsessionid from unmapped URLs"),
+    AP_INIT_TAKE12("JkStripSession", jk_set_strip_session, NULL, RSRC_CONF,
+                   "Should the server strip the jsessionid from unmapped 
URLs"),
 
     /*
      * JkLogFile & JkLogLevel specifies to where should the plugin log
@@ -2663,9 +2675,10 @@
     }
     if (overrides->mount_file_reload == JK_UNSET)
         overrides->mount_file_reload = base->mount_file_reload;
-    if (overrides->strip_session == JK_UNSET)
+    if (overrides->strip_session == JK_UNSET) {
         overrides->strip_session = base->strip_session;
-
+        overrides->strip_session_name = base->strip_session_name;
+    }
     return overrides;
 }
 
@@ -3406,10 +3419,11 @@
                     jk_log(conf->log, JK_LOG_DEBUG,
                            "no match for %s found",
                            r->uri);
-                if (conf->strip_session == JK_TRUE) {
+                if (conf->strip_session == JK_TRUE &&
+                    conf->strip_session_name) {
                     char *jsessionid;
                     if (r->uri) {
-                        jsessionid = strstr(r->uri, 
JK_PATH_SESSION_IDENTIFIER);
+                        jsessionid = strstr(r->uri, conf->strip_session_name);
                         if (jsessionid) {
                             if (JK_IS_DEBUG_LEVEL(conf->log))
                                 jk_log(conf->log, JK_LOG_DEBUG,
@@ -3419,7 +3433,7 @@
                         }
                     }
                     if (r->filename) {
-                        jsessionid = strstr(r->filename, 
JK_PATH_SESSION_IDENTIFIER);
+                        jsessionid = strstr(r->filename, 
conf->strip_session_name);
                         if (jsessionid)
                             *jsessionid = '\0';
                     }

Modified: tomcat/connectors/trunk/jk/xdocs/reference/apache.xml
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/reference/apache.xml?rev=702431&r1=702430&r2=702431&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/reference/apache.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/reference/apache.xml Tue Oct  7 03:56:27 
2008
@@ -334,7 +334,11 @@
 The default is Off.
 <br/>
 This directive has been introduced in version 1.2.21.
-</p></attribute>
+<br/>With version 1.2.27 and later this directive can have optional
+seddion ID identifier. If not specified it defaults to
+<code>;jsessionid</code>.
+</p>
+</attribute>
 
 </attributes>
 </section>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to