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

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

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.


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

Posted by "Glen Mazza (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12581982#action_12581982 ] 

Glen Mazza commented on CXF-1490:
---------------------------------

Good idea!  I'll see what I can do.

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


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

Posted by "Glen Mazza (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Glen Mazza closed CXF-1490.
---------------------------

    Resolution: Fixed

Fixed!

> 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
>    Affects Versions: 2.1
>            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.


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

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ 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.


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

Posted by "Glen Mazza (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Glen Mazza updated CXF-1490:
----------------------------

    Affects Version/s: 2.1

> 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
>    Affects Versions: 2.1
>            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.