geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sangjin Lee (JIRA)" <j...@apache.org>
Subject [jira] Reopened: (GERONIMO-3618) when redirected via status code 30x, the original query is incorrectly appended to the location
Date Thu, 29 Nov 2007 17:58:43 GMT

     [ https://issues.apache.org/jira/browse/GERONIMO-3618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sangjin Lee reopened GERONIMO-3618:
-----------------------------------


I found another issue related with redirect that was not completely fixed by the first fix.

One can specify query parameters via HttpRequestMessage.setParameter().  These parameters
are kept separate from HttpRequestMessage.getUrl(), and these query parameters get added to
the URL or to the post body when the request is encoded by HttpRequestEncoder.

The call to add the original query from the getUrl() was removed, but the query parameters
still remain, and they get added right back to the redirecting request.

The fix should clear all the query parameters when you send the request.  In addition, the
request method should also be reset to GET if it is not GET.

Essentially a redirecting request should be a brand new GET request with the URL specified
by the Location header.

I have a patch available which I'll upload shortly...


> when redirected via status code 30x, the original query is incorrectly appended to the
location
> -----------------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-3618
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-3618
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: AsyncHttpClient
>    Affects Versions: 1.x
>            Reporter: Sangjin Lee
>         Attachments: HttpIoHandler.patch, patch.zip
>
>
> If you're redirected via status code 30x (302, 301, ...), the code that handles following
redirects (HttpIoHandler.messageRecieved()) tries to append the original query from the first
request to the URL obtained from the Location header of the response.  This is incorrect per
HTTP specification.  The spec says the value of the Location header is an absoluteURI which
is a full URL that includes the proper query if any: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30.
 The query from the original request should not be part of the second URL.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message