---- oh...@cox.net wrote: 
> Hi,
> 
> This is a followup to an earlier post/question, "How to access client 
> certificate PEM and incoming request headers in a module?".
> 
> As before, I'm starting with mod_headers.c, and then tweaking it, partly 
> experimenting with modules, and partly for a project that I'm working on 
> (eventually).
> 
> What I'm trying to do now is:
> 
> - I have a test Tomcat instance that is being proxied by Apache, with a small 
> JSP that just dumps the HTTP headers
> - The Apache has my modified mod_headers.
> 
> I now need to add ("inject") an additional cookie to the incoming request so 
> that when the JSP dumps the headers, it'll show whatever cookies originally 
> existed, plus the one that my modified mod_headers module added.
> 
> As before, I'm adding my code to the beginning of 
> "ap_headers_insert_output_filter()" in mod_headers.c:
> 
>     printf("\n\nIn ap_headers_insert_output_filter: About to call FIRST 
> dump_request...\n");
>     dump_request(r);
>     printf("In ap_headers_insert_output_filter: Returned from calling FIRST 
> dump_request...\n");
> 
>     printf("\n\nIn ap_headers_insert_output_filter: About to call 
> apr_table_addn() to add 'Cookie' to r->headers_in\n");
>     apr_table_addn(r->headers_in, "Cookie", 
> "MyCookie=AAAAAAAAAAAAAAAABBBBBBBBBBB");
>     printf("In ap_headers_insert_output_filter: Returned from calling 
> apr_table_addn()...\n");
> 
>     printf("\n\nIn ap_headers_insert_output_filter: About to call 
> ap_headers_fixup()...\n");
>     ap_headers_fixup(r);
>     printf("In ap_headers_insert_output_filter: Returned from calling 
> ap_headers_fixup()...\n");
> 
>     printf("\n\nIn ap_headers_insert_output_filter: About to call SECOND 
> dump_request()...\n");
>     dump_request(r);
>     printf("In ap_headers_insert_output_filter: Returned from calling SECOND 
> dump_request()...\n");
> 
> .I'm running Apache in single process mode, so I can see the printf output, 
> and for that first call to dump_request(), I can see a "Cookie" header with a 
> JSESSION cookie, and then in the second call to dump_request, I can see a 
> "Cookie" header, but it has only my "MyCookie" cookie.  In other words, it 
> looks like when the:
> 
> apr_table_addn(r->headers_in, "Cookie", 
> "MyCookie=AAAAAAAAAAAAAAAABBBBBBBBBBB");
> 
> was executed, it overwrote the "Cookie" header in the r->headers_in table?
> 
> Can anyone tell me how I can *add* a cookie in my module?
> 
> Thanks,
> Jim
> 
> P.S.  BTW, by the time the headers are displayed by the JSP on the proxied 
> Tomcat, it shows ONLY the JSESSIONID cookie, i.e., it doesn't look like the 
> MyCookie cookie got passed to Tomcat?


Hi,

I think that I found one way to fix this.  Instead of:

apr_table_addn(r->headers_in, "Cookie", "MyCookie=AAAAAAAAAAAAAAAABBBBBBBBBBB");

I did:

apr_table_mergen(r->headers_in, "Cookie", 
"MyCookie=AAAAAAAAAAAAAAAABBBBBBBBBBB");

and I now see the cookie that I added, both in the dump_request() output and in 
the JSP output.

Jim

Reply via email to