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 2012/03/25 15:47:09 UTC

svn commit: r1305035 - in /tomcat/jk/trunk: native/apache-1.3/mod_jk.c xdocs/miscellaneous/changelog.xml

Author: rjung
Date: Sun Mar 25 13:47:09 2012
New Revision: 1305035

URL: http://svn.apache.org/viewvc?rev=1305035&view=rev
Log:
Allow to set path parameter used when doing JkStripSession
in HTTPD 1.3. This was available for HTTPD 2.x already
since mod_jk 1.2.27.

Port of r702431 from mod_jk for HTTPD 2.x to 1.3.

Modified:
    tomcat/jk/trunk/native/apache-1.3/mod_jk.c
    tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml

Modified: tomcat/jk/trunk/native/apache-1.3/mod_jk.c
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/apache-1.3/mod_jk.c?rev=1305035&r1=1305034&r2=1305035&view=diff
==============================================================================
--- tomcat/jk/trunk/native/apache-1.3/mod_jk.c (original)
+++ tomcat/jk/trunk/native/apache-1.3/mod_jk.c Sun Mar 25 13:47:09 2012
@@ -201,6 +201,7 @@ typedef struct
     int exclude_options;
 
     int strip_session;
+    char *strip_session_name;
     /*
      * Environment variables support
      */
@@ -1417,18 +1418,29 @@ static const char *jk_set_auto_alias(cmd
 /*
  * 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 = ap_pstrdup(cmd->pool, name);
+    else
+        conf->strip_session_name = ap_pstrdup(cmd->pool, JK_PATH_SESSION_IDENTIFIER);
 
     return NULL;
 }
@@ -2236,7 +2248,7 @@ static const command_rec jk_cmds[] = {
      * JkStripSession specifies if mod_jk should strip the ;jsessionid
      * from the unmapped urls
      */
-    {"JkStripSession", jk_set_strip_session, NULL, RSRC_CONF, FLAG,
+    {"JkStripSession", jk_set_strip_session, NULL, RSRC_CONF, TAKE12,
      "Should the server strip the jsessionid from unmapped URLs"},
 
     /*
@@ -2782,9 +2794,10 @@ static void *merge_jk_config(ap_pool * p
     }
     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;
 }
 
@@ -3258,10 +3271,11 @@ static int jk_translate(request_rec * r)
                     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,
@@ -3271,7 +3285,7 @@ static int jk_translate(request_rec * r)
                         }
                     }
                     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/jk/trunk/xdocs/miscellaneous/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml?rev=1305035&r1=1305034&r2=1305035&view=diff
==============================================================================
--- tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Sun Mar 25 13:47:09 2012
@@ -51,6 +51,10 @@
         <bug>46893</bug>: HTTPD 1.3: Apply fix to HTTPD 1.3.
         It was fixed for HTTPD 2.x already in version 1.2.30. (rjung)
       </fix>
+      <update>
+        HTTPD 1.3: Allow to set path parameter used when doing JkStripSession.
+        This was available for HTTPD 2.x already since mod_jk 1.2.27. (rjung)
+      </update>
     </changelog>
   </subsection>
 </section>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org