[utilities COMMIT] in /java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient: SSLConnecti...

noreply at shibboleth.net noreply at shibboleth.net
Wed May 20 18:25:19 EDT 2015


Author: putmanb
Date: Wed May 20 18:25:18 2015
New Revision: 794

URL: http://svn.shibboleth.net/view/utilities?rev=794&view=rev
Log:
Add custom impl of HttpClient SSL/TLS socket factory. Based on SSLConnectionSocketFactory, plus supports:
- actually allows realistic and clean subclassing
- default strict hostname verifier rather than browser compat one
- per-request TLS protocols and cipher suites
- per-request hostname verifier.
Recast recent new Spring-friendly SSLConnectionSocketFactoryBuilder to build instances of this TLSSocketFactory.

Added:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/TLSSocketFactory.java   (with props)
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/TLSSocketFactoryBuilder.java
      - copied, changed from r793, java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/SSLConnectionSocketFactoryBuilder.java
Modified:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/SSLConnectionSocketFactoryBuilder.java

Copied: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/TLSSocketFactoryBuilder.java (from r793, java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/SSLConnectionSocketFactoryBuilder.java)
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/TLSSocketFactoryBuilder.java?p2=java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/TLSSocketFactoryBuilder.java&p1=java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/SSLConnectionSocketFactoryBuilder.java&r1=793&r2=794&rev=794&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/SSLConnectionSocketFactoryBuilder.java	(original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/TLSSocketFactoryBuilder.java	Wed May 20 18:25:18 2015
@@ -32,24 +32,23 @@
 
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
 import org.apache.http.conn.ssl.X509HostnameVerifier;
 
 import com.google.common.base.Predicates;
 import com.google.common.collect.Collections2;
 
 /**
- * A builder for instances of {@link SSLConnectionSocketFactory} which allows easy specification
+ * A builder for instances of {@link TLSSocketFactory} which allows easy specification
  * of the full range of supported factory inputs.
  */
-public class SSLConnectionSocketFactoryBuilder {
+public class TLSSocketFactoryBuilder {
     
     /** The default protocol used when obtaining the SSLContxt instance. */
     private static final String DEFAULT_CONTEXT_PROTOCOL = "TLS";
     
     /** The default hostname verifier used by the socket factory. */
     private static final X509HostnameVerifier DEFAULT_HOSTNAME_VERIFIER = 
-            SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER;
+            TLSSocketFactory.STRICT_HOSTNAME_VERIFIER;
     
     /** The protocol used when obtaining the SSLContext instance. */
     private String sslContextProtocol;
@@ -196,7 +195,7 @@
     /**
      * Get the {@link X509HostnameVerifier} instance used by the socket factory.
      * 
-     * <p>If not specified, defaults to {@link SSLConnectionSocketFactory#STRICT_HOSTNAME_VERIFIER}.
+     * <p>If not specified, defaults to {@link TLSSocketFactory#STRICT_HOSTNAME_VERIFIER}.
      * 
      * @return the hostname verifier, or null
      */
@@ -207,7 +206,7 @@
     /**
      * Set the {@link X509HostnameVerifier} instance used by the socket factory.
      * 
-     * <p>If not specified, defaults to {@link SSLConnectionSocketFactory#STRICT_HOSTNAME_VERIFIER}.
+     * <p>If not specified, defaults to {@link TLSSocketFactory#STRICT_HOSTNAME_VERIFIER}.
      * 
      * @param verifier the hostname verifier, or null
      */
@@ -258,19 +257,19 @@
     }
 
     /**
-     * Build a new instance of {@link SSLConnectionSocketFactory}, based on the properties specified
+     * Build a new instance of {@link TLSSocketFactory}, based on the properties specified
      * to this builder instance.
      * 
      * @return a new socket factory instance
      */
-    @Nonnull public SSLConnectionSocketFactory build() {
+    @Nonnull public TLSSocketFactory build() {
         X509HostnameVerifier verifier = hostnameVerifier;
         if (verifier == null) {
             verifier = DEFAULT_HOSTNAME_VERIFIER;
         }
 
         SSLContext sslcontext = buildSSLContext();
-        return new SSLConnectionSocketFactory(sslcontext, 
+        return new TLSSocketFactory(sslcontext, 
                 enabledProtocols != null ? enabledProtocols.toArray(new String[0]) : null, 
                 enabledCipherSuites != null ? enabledCipherSuites.toArray(new String[0]) : null, 
                 verifier);
@@ -281,7 +280,7 @@
      * 
      * @return a new SSLContext instance

[... 7 lines stripped ...]


More information about the commits mailing list