Project

General

Profile

Bug #1399

Session handling seems to be broken when dealing with special headers and ajp13

Added by mbraun almost 12 years ago. Updated almost 12 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
mod_proxy_backend_ajp13
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Missing in 1.5.x:

Description

I am currently trying to get the Open-Xchange Collaboration Suite (Community Edition) working with lighttpd. It does all fine with apache2/mod_jk, but as there is a ajp13 implementation now for lighty, i'd like to give it a try. It seems that some problem with the response header parsing is currently blocking the server to set cookies, or generally all kinds of headers set by the application server. Please see the attached comparison of the server response on a simple login request. You'll notice that apache2 sends back a session-id as well as a proper content type, lighty does reply none of both.

Darix had the kindness to do some debugging and he stated that something wired is going on when parsing the header provided by the application server:

304 static int ajp13_decode_response_headers(http_resp *resp, ajp13_state_data *data) {[BR]
p *data

Cannot access memory at address 0x0

If you need more information, please feel free to contact me, i'll provide you access to a system already configured with the application server and lighty. If you'd like to take a look to the source of the ajp13 implementation on server side, you may check the open-xchange cvs (http://www.open-xchange.com/wiki/ for more information).

'''apache 2.2.3/mod_jk 1.2.18:'''[BR]


curl -v http://myhost:80/ajax/login?action=login > /dev/null
* About to connect() to myhost port 80
*   Trying myhost... connected
* Connected to myhost (myhost) port 80
> GET /ajax/login?action=login HTTP/1.1
> User-Agent: curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5
> Host: myhost
> Accept: */*
>
< HTTP/1.1 400 Error
< Date: Tue, 02 Oct 2007 21:05:27 GMT
< Server: Apache/2.2.3 (Debian) mod_jk/1.2.18 PHP/5.2.0-8+etch7 mod_ssl/2.2.3 OpenSSL/0.9.8c
< Content-Length: 637
< Set-Cookie: JSESSIONID=4e0b7516318ff10dfe7963a9e1a253b1856c9c8a.OX1; path=/
< Cache-Control: max-age=82800
< Expires: Wed, 03 Oct 2007 20:05:27 GMT
< Vary: Accept-Encoding
< Connection: close
< Content-Type: text/html; charset=UTF-8

ngrep:
T myclient:58336 -> myhost:80 [AP]
  GET /ajax/login?action=login HTTP/1.1..User-Agent: curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5..Host: tdialin.net..Accept: */*....
##
T myhost:80 -> myclient:58336 [AP]
  HTTP/1.1 400 Error..Date: Tue, 02 Oct 2007 21:33:54 GMT..Server: Apache/2.2.3 (Debian) mod_jk/1.2.18 PHP/5.2.0-8+etch7 mod_ssl/2.2.3 OpenSSL/0.9.8c..Content-Length: 637..Set-Cookie: JSESSIONID=5688797489
  cfd2aebe442946f575cc20698e51cc.OX1; path=/..Cache-Control: max-age=82800..Expires: Wed, 03 Oct 2007 20:33:54 GMT..Vary: Accept-Encoding..Connection: close..Content-Type: text/html; charset=UTF-8....<!DOC
  TYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">.<html xmlns="http://www.w3.org/1999/xhtml" language="en" xml:lang="en">.<head>..<title>Error</title>..<link rev="made" 
   href="mailto:%5bno%20address%20given%5d"/>.<style type="text/css"><!--/*--><![CDATA[/*><!--*/ ...body { color: #000000; background-color: #FFFFFF; }...a:link { color: #0000CC; }...p, address {margin-lef
  t: 3em;}..span {font-size: smaller;}./*]]>*/--></style>.</head>..<body>.<h1>Error</h1>.<p>..</p>..<h2>Error 400</h2>.<address>.<a href="/">213.239.220.146</a><br />..<span><br />..Open-Xchange</span>.</a
  ddress>.</body>.</html>

'''lighttpd 1.5.0 r1992:'''[BR]


curl -v http://myhost:81/ajax/login?action=login > /dev/null
* About to connect() to myhost port 81
*   Trying myhost... connected
* Connected to myhost (myhost) port 81
> GET /ajax/login?action=login HTTP/1.1
> User-Agent: curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5
> Host: myhost:81
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Transfer-Encoding: chunked
< Date: Tue, 02 Oct 2007 21:05:30 GMT
< Server: lighttpd/1.5.0

ngrep:
T myclient:56665 -> myhost:81 [AP]
  GET /ajax/login?action=login HTTP/1.1..User-Agent: curl/7.15.5 (i486-pc-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 libidn/0.6.5..Host: tdialin.net:81..Accept: */*....
##
T myhost:81 -> myclient:56665 [AP]
  HTTP/1.1 400 Bad Request..Transfer-Encoding: chunked..Date: Tue, 02 Oct 2007 21:33:30 GMT..Server: lighttpd/1.5.0....27d..<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/stri
  ct.dtd">.<html xmlns="http://www.w3.org/1999/xhtml" language="en" xml:lang="en">.<head>..<title>Error</title>..<link rev="made" href="mailto:%5bno%20address%20given%5d"/>.<style type="text/css"><!--/*-->
  <![CDATA[/*><!--*/ ...body { color: #000000; background-color: #FFFFFF; }...a:link { color: #0000CC; }...p, address {margin-left: 3em;}..span {font-size: smaller;}./*]]>*/--></style>.</head>..<body>.<h1>
  Error</h1>.<p>..</p>..<h2>Error 400</h2>.<address>.<a href="/">213.239.220.146</a><br />..<span><br />..Open-Xchange</span>.</address>.</body>.</html>..


Related issues

Has duplicate Bug #1067: Content-Type header appears to be dropped [solved]Fixed

Actions

Associated revisions

Revision 2001 (diff)
Added by jan almost 12 years ago

fixed decoding of common headers in APJ13 (fixes #1399)

- added a bunch of debug code to make tracing easier and catching such
errors when they happen

History

#1

Updated by jan almost 12 years ago

Can you help me to set it up locally and run the same configuration as you do to reproduce it ? Please ping me on IRC (weigon) or mail ()

#2

Updated by jan almost 12 years ago

  • Status changed from New to Fixed
  • Resolution set to fixed

fixed in r2001

Also available in: Atom