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