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

Ron Gavlin updated CXF-2048:
----------------------------

    Description: 
My app is using CXF to make web service connections to external services that 
require client PKI authentication. The app also uses Tibco Java client 
libraries for JMS over SSL. The Tibco libs set the following Java system 
property:

java.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol

This causes my CXF web service client to throw a class cast exception when it 
attempts to make a secure connection. Let me explain why this occurs..

The java.protocol.handler.pkgs system property is a list of package name 
prefixes used by Java to resolve protocol names into actual handler class 
names. As of v1.4, JSSE has been integrated into the J2SDK. Thus, the classes 
formerly in com.sun.net.ssl have been promoted to the javax.net.ssl package and 
are now a part of the standard JSSE API.

For compatibility purposes the com.sun.net.ssl classes and interfaces still 
exist, but have been deprecated. Applications written using them can run in the 
J2SDK v1.4 and later without being recompiled. **Thus, setting the system 
property causes Java to use the deprecated implementation.**

The problem with CXF comes in because it assumes the newer handler package 
structure when it attempts to decorate the underlying connection with your 
TLSClientParameters.

A workaround should be implemented to support common, divergent subtype https 
implementations including com.sun.net.ssl.HttpsURLConnection.

  was:
My app is using CXF to make web service connections to external services that 
require client PKI authentication. The app also uses Tibco Java client 
libraries for JMS over SSL. The Tibco libs set the following Java system 
property:

java.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol

This causes my CXF web service client to throw a class cast exception when it 
attempts to make a secure connection. Let me explain why this occurs..

The java.protocol.handler.pkgs system property is a list of package name 
prefixes used by Java to resolve protocol names into actual handler class 
names. As of v1.4, JSSE has been integrated into the J2SDK. Thus, the classes 
formerly in com.sun.net.ssl have been promoted to the javax.net.ssl package and 
are now a part of the standard JSSE API.

For compatibility purposes the com.sun.net.ssl classes and interfaces still 
exist, but have been deprecated. Applications written using them can run in the 
J2SDK v1.4 and later without being recompiled. **Thus, setting the system 
property causes Java to use the deprecated implementation.**

The problem with CXF comes in because it assumes the newer handler package 
structure when it attempts to decorate the underlying connection with your 
TLSClientParameters.

A workaround should be implemented to support common, divergent subtype https 
implementations including com.sun.net.ssl.


> ClassCastException occurs on HTTPS web service call made when Tibco EMS SSL 
> Java client library is on classpath
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-2048
>                 URL: https://issues.apache.org/jira/browse/CXF-2048
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.0.10
>         Environment: JDK 6 with Tibco EMS 4 SSL library on classpath
>            Reporter: Ron Gavlin
>            Priority: Critical
>         Attachments: cxf-2048.patch
>
>
> My app is using CXF to make web service connections to external services that 
> require client PKI authentication. The app also uses Tibco Java client 
> libraries for JMS over SSL. The Tibco libs set the following Java system 
> property:
> java.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol
> This causes my CXF web service client to throw a class cast exception when it 
> attempts to make a secure connection. Let me explain why this occurs..
> The java.protocol.handler.pkgs system property is a list of package name 
> prefixes used by Java to resolve protocol names into actual handler class 
> names. As of v1.4, JSSE has been integrated into the J2SDK. Thus, the classes 
> formerly in com.sun.net.ssl have been promoted to the javax.net.ssl package 
> and are now a part of the standard JSSE API.
> For compatibility purposes the com.sun.net.ssl classes and interfaces still 
> exist, but have been deprecated. Applications written using them can run in 
> the J2SDK v1.4 and later without being recompiled. **Thus, setting the system 
> property causes Java to use the deprecated implementation.**
> The problem with CXF comes in because it assumes the newer handler package 
> structure when it attempts to decorate the underlying connection with your 
> TLSClientParameters.
> A workaround should be implemented to support common, divergent subtype https 
> implementations including com.sun.net.ssl.HttpsURLConnection.

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