[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