[ openjms-Bugs-1105874 ] Https connector and other JSSEs (IBM in particular)

"SourceForge.net" <[email protected]> Thu, 20 Jan 2005 02:39:01 -0800
Newsgroups gmane.comp.java.openjms.devel
Message-ID <[email protected]>
Bugs item #1105874, was opened at 2005-01-20 11:39
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=1105874&group_id=54559

Category: None
Group: v0.7.6.1
Status: Open
Resolution: None
Priority: 5
Submitted By: Angelo R. Di Filippo (adifilip)
Assigned to: Nobody/Anonymous (nobody)
Summary: Https connector and other JSSEs (IBM in particular)

Initial Comment:
Hi all,
I tried to use the https connector of openjms with WAS
and in particular with IBM JDK and I found a lot of
problems. In particular the problem is in the
requirement of the sun JSSE by openjms and in the way
WAS works (every time WAS resets
java.protocol.handler.pkgs system property to its
default value).
To solve the problem I modified 4 classes:

org.exolab.jms.administration.http.SslHttpJmsAdminConnection
org.exolab.jms.client.http.SslHttpJmsServerStub
org.exolab.jms.jndi.http.SslHttpJndiInitialContextFactory
org.exolab.jms.server.http.HttpsJmsServer

Every time I found the code

           System.setProperty(
               "java.protocol.handler.pkgs",
               "com.sun.net.ssl.internal.www.protocol");
           Class providerClass =
              
Class.forName("com.sun.net.ssl.internal.ssl.Provider");
           Provider provider = (Provider)
providerClass.newInstance();
           Security.addProvider(provider);

I substituted it with

       String props =
System.getProperty("java.protocol.handler.pkgs");
       if (props == null) {
           props = "";
       }
       StringTokenizer tokenizer = new
StringTokenizer(props, "|");
       boolean         notFound  = true;         while
(tokenizer.hasMoreTokens()) {
           try {
               Class.forName(tokenizer.nextToken() +
".https.Handler");
               notFound = false;
               break;
           } catch (Exception e) {
           }
       }
       if (props.length() > 0) {
           props += "|";
       }
       if (notFound) {
           System.setProperty(
               "java.protocol.handler.pkgs",
               props +
"com.sun.net.ssl.internal.www.protocol");
           Class providerClass =
              
Class.forName("com.sun.net.ssl.internal.ssl.Provider");
           Provider provider = (Provider)
providerClass.newInstance();
           Security.addProvider(provider);
       }

so that openjms can use the default implementation of jsse.
With this changes to start openjms server with IBM JDK
is neccessary to set in setenv
JAVA_OPT="-Djava.protocol.handler.pkgs=com.ibm.net.ssl.internal.www.protocol".


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=1105874&group_id=54559


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl