Author: markt
Date: Tue Mar  8 11:15:37 2011
New Revision: 1079323

URL: http://svn.apache.org/viewvc?rev=1079323&view=rev
Log:
Refactor to address https://issues.apache.org/bugzilla/show_bug.cgi?id=48208#c13
Don't configure a TrustManagerFactory instance if it isn't going to be used.

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java?rev=1079323&r1=1079322&r2=1079323&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 
Tue Mar  8 11:15:37 2011
@@ -566,6 +566,19 @@ public class JSSESocketFactory implement
         throws Exception {
         String crlf = endpoint.getCrlFile();
         
+        String className = endpoint.getTrustManagerClassName();
+        if(className != null && className.length() > 0) {
+             ClassLoader classLoader = getClass().getClassLoader();
+             Class<?> clazz = classLoader.loadClass(className);
+             if(!(TrustManager.class.isAssignableFrom(clazz))){
+                throw new InstantiationException(sm.getString(
+                        "jsse.invalidTrustManagerClassName", className));
+             }
+             Object trustManagerObject = clazz.newInstance();
+             TrustManager trustManager = (TrustManager) trustManagerObject;
+             return new TrustManager[]{ trustManager };
+        }    
+
         TrustManager[] tms = null;
         
         KeyStore trustStore = getTrustStore(keystoreType, keystoreProvider);
@@ -574,7 +587,7 @@ public class JSSESocketFactory implement
                 TrustManagerFactory tmf =
                     TrustManagerFactory.getInstance(algorithm);
                 tmf.init(trustStore);
-                tms = getTrustManagers(tmf);
+                tms = tmf.getTrustManagers();
             } else {
                 TrustManagerFactory tmf =
                     TrustManagerFactory.getInstance(algorithm);
@@ -583,7 +596,7 @@ public class JSSESocketFactory implement
                 ManagerFactoryParameters mfp =
                     new CertPathTrustManagerParameters(params);
                 tmf.init(mfp);
-                tms = getTrustManagers(tmf);
+                tms = tmf.getTrustManagers();
             }
         }
         
@@ -591,35 +604,6 @@ public class JSSESocketFactory implement
     }
 
     /**
-     * Gets the TrustManagers either from Connector's
-     * <code>trustManagerClassName</code> attribute (if set) else from the
-     * {@link TrustManagerFactory}.
-     * @return The TrustManagers to use for this connector.
-     * @throws NoSuchAlgorithmException 
-     * @throws ClassNotFoundException 
-     * @throws IllegalAccessException 
-     * @throws InstantiationException 
-    */
-   protected TrustManager[] getTrustManagers(TrustManagerFactory tmf)
-           throws NoSuchAlgorithmException, ClassNotFoundException,
-           InstantiationException, IllegalAccessException {
-
-       String className = endpoint.getTrustManagerClassName();
-       if(className != null && className.length() > 0) {
-            ClassLoader classLoader = getClass().getClassLoader();
-            Class<?> clazz = classLoader.loadClass(className);
-            if(!(TrustManager.class.isAssignableFrom(clazz))){
-               throw new InstantiationException(sm.getString(
-                       "jsse.invalidTrustManagerClassName", className));
-            }
-            Object trustManagerObject = clazz.newInstance();
-            TrustManager trustManager = (TrustManager) trustManagerObject;
-            return new TrustManager[]{ trustManager };
-        }      
-       return tmf.getTrustManagers();
-   }
-
-    /**
      * Return the initialization parameters for the TrustManager.
      * Currently, only the default <code>PKIX</code> is supported.
      * 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to