You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2013/05/31 22:59:42 UTC

[Bug 55039] New: "RequestHeader edit" can't access environment variables

https://issues.apache.org/bugzilla/show_bug.cgi?id=55039

            Bug ID: 55039
           Summary: "RequestHeader edit" can't access environment
                    variables
           Product: Apache httpd-2
           Version: 2.2.3
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: mod_headers
          Assignee: bugs@httpd.apache.org
          Reporter: felix.almeida@rci.rogers.com

Hello,

First of all, let me give you some context. The Apache 2.2's webpage which
describes mod_headers' "RequestHeader" directive says (specifically for the
"edit" action):

    RequestHeader edit header value replacement [early|env=[!]variable]
    If this request header exists, its value is transformed according to a
regular expression search-and-replace. The value argument is a regular
expression, and the replacement is a replacement string, which may contain
backreferences. Both a value and a replacement are a regular expression and a
replacement string respectively.

That's fine, but I faced a situation in my production environment where I had
two JSESSIONIDs defined in the "Cookie" header (don't ask me why) and this was
confusing the load balancing algorithm (mod_proxy_balancer). Without getting
into too much details, what I had to do was to clean up the "Cookie" header to
leave there only the JSESSIONID that I need. This is how I thought I could do
that:

    SetEnvIf Cookie "JSESSIONID=([^;]+\.server.)" MYSESSIONID=$1
    RequestHeader edit* Cookie "(^JSESSIONID=[^;]+; |; JSESSIONID=[^;]+)" ""
    RequestHeader edit Cookie "(.*)" "$1; JSESSIONID=%{MYSESSIONID}e"
env=MYSESSIONID

The first two lines above work fine, but unfortunately the last one doesn't
because the "RequestHeader edit" directive cannot reference environment
variables in its replacement string (why?). :~(

If I understood correctly what the webpage mentioned above says, the
replacement string is just that (a fixed string) which may also contain
backreferences to groups in the value's regular expression, however, since I
was trying to append the content of an environment variable there (in this case
MYSESSIONID), I ended up with, for instance, the following result (which is not
what I wanted):

    Cookie: language=en;
JSESSIONID=KKb2Ry1NJTw8tWznLH2hLCkSTkq0nnyKwSys0MbSxLvymKb89Cgn!-253102450;
customer_type=Residential; JSESSIONID=%{MYSESSIONID}e

I was looking for something like this:

    Cookie: language=en;
JSESSIONID=KKb2Ry1NJTw8tWznLH2hLCkSTkq0nnyKwSys0MbSxLvymKb89Cgn!-253102450;
customer_type=Residential; JSESSIONID=60685FA3BC4F0345196D00BFBFBFFC79.server2

Please, would it be possible to add this capability to the "RequestHeader edit"
directive so we would be able to use environments variables inside the
replacement string as well?

Thanks a lot!

PS: I'm running Apache 2.2.3 on RHEL 5.7

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


[Bug 55039] "RequestHeader edit" can't access environment variables

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=55039

Marc Stern <ma...@approach.be> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marc.stern@approach.be

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


[Bug 55039] "RequestHeader edit" can't access environment variables

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=55039

felix.almeida@rci.rogers.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |asf@sameprecision.org

--- Comment #1 from felix.almeida@rci.rogers.com ---
*** Bug 47066 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org