[ 
https://issues.apache.org/jira/browse/CXF-1490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12581977#action_12581977
 ] 

Daniel Kulp commented on CXF-1490:
----------------------------------


Glen,

What is the Content-Type header of the response in this situation?   Is it 
text/html or text/xml?

Most likely the StaxInInterceptor should be updated to double check the content 
type to make sure we don't create a Stax input stream if it's not XML.  Throw 
an "unsupported content type" type fault from there and include a chunk of the 
buffer.   

Dan




> Need to trap "com.ctc.wstx.exc.WstxUnexpectedCharException" in 
> ReadHeadersInterceptor and give HTML response message
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1490
>                 URL: https://issues.apache.org/jira/browse/CXF-1490
>             Project: CXF
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Glen Mazza
>            Priority: Minor
>
> If an HTML response in returned from the service to the client, due to a 
> basic authentication or other error, the following error stack is returned 
> (if chunked transfer encoding is set to FALSE for the HTTPConduit/client*):
>     [java] Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: 
> Unexpected character '"' (code 34) in DOCTYPE declaration; expected a space 
> between public and system identifiers
>      [java]  at [row,col {unknown-source}]: [1,55]
>      [java]   at 
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:623)
>      [java]   at 
> com.ctc.wstx.sr.BasicStreamReader.startDTD(BasicStreamReader.java:2482)
>      [java]   at 
> com.ctc.wstx.sr.BasicStreamReader.nextFromPrologBang(BasicStreamReader.java:2398)
>      [java]   at 
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2058)
>      [java]   at 
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
>      [java]   at 
> com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1095)
>      [java]   at 
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:85)
>      [java]   ... 15 more
> This requires the user to go to Wireshark[1] to determine what the HTML error 
> message is.  I think it would be helpful for the user if this error was 
> trapped, and the HTML error message output to the client console as part of 
> the exception, to save that step.
> Steps to duplicate:  Make an HTTPS client connection to a server with (a) 
> wrong username and/or password and (b) chunked transfer encoding set to false 
> as shown here:
> <beans xmlns="http://www.springframework.org/schema/beans"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:sec="http://cxf.apache.org/configuration/security"; 
> xmlns:http="http://cxf.apache.org/transports/http/configuration"; 
> xsi:schemaLocation="http://cxf.apache.org/configuration/security 
> http://cxf.apache.org/schemas/configuration/security.xsd 
> http://cxf.apache.org/transports/http/configuration 
> http://cxf.apache.org/schemas/configuration/http-conf.xsd 
> http://www.springframework.org/schema/beans 
> http://www.springframework.org/schema/beans/spring-beans.xsd";>
>    <http:conduit 
> name="{https://myhost.com/this/is/namespace}MyPortName.http-conduit";>
>    <http:authorization>
>      <sec:UserName>???</sec:UserName>
>      <sec:Password>???</sec:Password>
>    </http:authorization>
>    <http:tlsClientParameters secureSocketProtocol="SSL"/>
>    <http-conf:client AllowChunking="false"/>
>    </http:conduit>
> </beans>
> Running the client should produce the above error stack.
> [1] http://www.jroller.com/gmazza/entry/wireshark_usage_for_cxf
> * if chunked transfer encoding is true, we get a HttpRetryException error 
> message as shown here:
> http://techpolesen.blogspot.com/2007/08/javanethttpretryexception-cannot-retry.html;
>  this is not currently a concern for me.

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

Reply via email to