[
https://issues.apache.org/jira/browse/CXF-3100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12927738#action_12927738
]
Willem Jiang commented on CXF-3100:
-----------------------------------
Hi Kevin,
Thanks for you contribution.
Can you submit a diff file instead the whole HttpConduit.java , so I can apply
the patch more easily.
Willem
> HTTPConduit doesn't handle cookies when retransmitting in case of "401
> Unauthorized" response
> ---------------------------------------------------------------------------------------------
>
> Key: CXF-3100
> URL: https://issues.apache.org/jira/browse/CXF-3100
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Reporter: Kevin Linke
> Attachments: HTTPConduit.java
>
>
> Hello,
> we are consuming a web service that requires http basic authentication and
> tries to establish a cookie-based session with the client. So the response to
> the first request is always a "401 Unauthorized" response including a
> "Set-Cookie" header, even if the first request already contains the basic
> authentication header with the correct credentials. The request is only
> accepted if both the basic authentication header and the cookie header with
> the cookie from the "401 Unauthorized" response are set.
> Calling the web service using SoapUI works fine. You can see in the log the
> initial request, the 401 reponse including the "Set-Cookie" header and the
> retransmitted request with the corresponding cookie header set, resulting in
> a successful response. Everything as expected.
> When using CXF, there is an infinite loop (request -> 401 -> retransmit ->
> 401 and so on) until a protocol exception is thrown (too many
> retransmits/redirects). The reason is that the expected cookie header is not
> set when retransmitting the request, even if the parameter
> "BindingProvider.SESSION_MAINTAIN_PROPERTY" is set to true.
> Investigating the source code of the
> org.apache.cxf.transport.http.HTTPConduit class I found out that when
> retransmitting in case of 301,302 or 401 reponses the part of the code
> evaluating the "Set-Cookie" headers of the response is never reached, which
> is not correct in my opinion.
> I did some changes to the org.apache.cxf.transport.http.HTTPConduit class
> (see attachment) so that it works now with the specified scenario. Is it
> possible to fix this overall issue in a future release?
> Notes:
> - we are using Apache CXF 2.2.9
> - soap over http (with ssl) and http basic authentication
> - the modified org.apache.cxf.transport.http.HTTPConduit class is also based
> on the 2.2.9 sources
> - all changes of the org.apache.cxf.transport.http.HTTPConduit class are
> labeled "// KLI:"
> Thanks,
> Kevin
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.