You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2008/03/25 16:03:24 UTC

[jira] Commented: (CXF-1490) Need to trap "com.ctc.wstx.exc.WstxUnexpectedCharException" in ReadHeadersInterceptor and give HTML response message

    [ 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.