You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2013/01/22 14:38:56 UTC

[2/2] git commit: missed to add the class

Updated Branches:
  refs/heads/master d31b5147b -> 2e57b6418


missed to add the class


Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/2e57b641
Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/2e57b641
Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/2e57b641

Branch: refs/heads/master
Commit: 2e57b6418582bdf8afb95945cd1ab46da9ea5a73
Parents: d95189d
Author: olivier lamy <ol...@apache.org>
Authored: Tue Jan 22 14:38:43 2013 +0100
Committer: olivier lamy <ol...@apache.org>
Committed: Tue Jan 22 14:38:43 2013 +0100

----------------------------------------------------------------------
 .../shared/http4/ConfigurableSSLSocketFactory.java |   92 +++++++++++++++
 1 files changed, 92 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/2e57b641/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/ConfigurableSSLSocketFactory.java
----------------------------------------------------------------------
diff --git a/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/ConfigurableSSLSocketFactory.java b/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/ConfigurableSSLSocketFactory.java
new file mode 100644
index 0000000..821c2f0
--- /dev/null
+++ b/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/ConfigurableSSLSocketFactory.java
@@ -0,0 +1,92 @@
+package org.apache.maven.wagon.shared.http4;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.http.conn.ConnectTimeoutException;
+import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.conn.ssl.X509HostnameVerifier;
+import org.apache.http.params.HttpParams;
+import org.codehaus.plexus.util.StringUtils;
+
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocket;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+
+/**
+ * @author Olivier Lamy
+ * @since 2.4
+ */
+public class ConfigurableSSLSocketFactory
+    extends SSLSocketFactory
+{
+    public ConfigurableSSLSocketFactory( SSLContext sslContext, X509HostnameVerifier hostnameVerifier )
+    {
+        super( sslContext, hostnameVerifier );
+    }
+
+    @Override
+    public Socket createSocket()
+        throws IOException
+    {
+        return enableSslProtocols( super.createSocket() );
+    }
+
+    @Override
+    public Socket createSocket( HttpParams params )
+        throws IOException
+    {
+        return enableSslProtocols( super.createSocket( params ) );
+    }
+
+    @Override
+    public Socket createSocket( Socket socket, String host, int port, boolean autoClose )
+        throws IOException, UnknownHostException
+    {
+        return enableSslProtocols( super.createSocket( socket, host, port, autoClose ) );
+    }
+
+    @Override
+    public Socket connectSocket( Socket socket, String host, int port, InetAddress localAddress, int localPort,
+                                 HttpParams params )
+        throws IOException, UnknownHostException, ConnectTimeoutException
+    {
+        return enableSslProtocols( super.connectSocket( socket, host, port, localAddress, localPort, params ) );
+    }
+
+    protected Socket enableSslProtocols( Socket socket )
+    {
+        String httpsProtocols = System.getProperty( "https.protocols" );
+        if ( StringUtils.isNotEmpty( httpsProtocols ) )
+        {
+            String[] protocols = StringUtils.split( httpsProtocols, "," );
+            if ( socket instanceof SSLSocket )
+            {
+                ( (SSLSocket) socket ).setEnabledProtocols( protocols );
+            }
+        }
+
+        return socket;
+    }
+
+
+}