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: [email protected]
For additional commands, e-mail: [email protected]