|
@@ -22,11 +22,6 @@ import java.io.IOException;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.URL;
|
|
import java.net.URL;
|
|
import java.net.URLConnection;
|
|
import java.net.URLConnection;
|
|
-import java.security.GeneralSecurityException;
|
|
|
|
-
|
|
|
|
-import javax.net.ssl.HostnameVerifier;
|
|
|
|
-import javax.net.ssl.HttpsURLConnection;
|
|
|
|
-import javax.net.ssl.SSLSocketFactory;
|
|
|
|
|
|
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
import org.apache.hadoop.classification.InterfaceStability;
|
|
import org.apache.hadoop.classification.InterfaceStability;
|
|
@@ -36,7 +31,6 @@ import org.apache.hadoop.security.UserGroupInformation;
|
|
import org.apache.hadoop.security.authentication.client.AuthenticatedURL;
|
|
import org.apache.hadoop.security.authentication.client.AuthenticatedURL;
|
|
import org.apache.hadoop.security.authentication.client.AuthenticationException;
|
|
import org.apache.hadoop.security.authentication.client.AuthenticationException;
|
|
import org.apache.hadoop.security.authentication.client.ConnectionConfigurator;
|
|
import org.apache.hadoop.security.authentication.client.ConnectionConfigurator;
|
|
-import org.apache.hadoop.security.ssl.SSLFactory;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
@@ -103,7 +97,7 @@ public class URLConnectionFactory {
|
|
final int connectTimeout, final int readTimeout, Configuration conf) {
|
|
final int connectTimeout, final int readTimeout, Configuration conf) {
|
|
ConnectionConfigurator conn;
|
|
ConnectionConfigurator conn;
|
|
try {
|
|
try {
|
|
- conn = newSslConnConfigurator(connectTimeout, readTimeout, conf);
|
|
|
|
|
|
+ conn = new SSLConnectionConfigurator(connectTimeout, readTimeout, conf);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
LOG.warn(
|
|
LOG.warn(
|
|
"Cannot load customized ssl related configuration. Fallback to" +
|
|
"Cannot load customized ssl related configuration. Fallback to" +
|
|
@@ -139,7 +133,7 @@ public class URLConnectionFactory {
|
|
ConnectionConfigurator conn;
|
|
ConnectionConfigurator conn;
|
|
try {
|
|
try {
|
|
ConnectionConfigurator sslConnConfigurator
|
|
ConnectionConfigurator sslConnConfigurator
|
|
- = newSslConnConfigurator(connectTimeout, readTimeout, conf);
|
|
|
|
|
|
+ = new SSLConnectionConfigurator(connectTimeout, readTimeout, conf);
|
|
|
|
|
|
conn = new OAuth2ConnectionConfigurator(conf, sslConnConfigurator);
|
|
conn = new OAuth2ConnectionConfigurator(conf, sslConnConfigurator);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -153,33 +147,6 @@ public class URLConnectionFactory {
|
|
this.connConfigurator = connConfigurator;
|
|
this.connConfigurator = connConfigurator;
|
|
}
|
|
}
|
|
|
|
|
|
- private static ConnectionConfigurator newSslConnConfigurator(
|
|
|
|
- final int connectTimeout, final int readTimeout, Configuration conf)
|
|
|
|
- throws IOException, GeneralSecurityException {
|
|
|
|
- final SSLFactory factory;
|
|
|
|
- final SSLSocketFactory sf;
|
|
|
|
- final HostnameVerifier hv;
|
|
|
|
-
|
|
|
|
- factory = new SSLFactory(SSLFactory.Mode.CLIENT, conf);
|
|
|
|
- factory.init();
|
|
|
|
- sf = factory.createSSLSocketFactory();
|
|
|
|
- hv = factory.getHostnameVerifier();
|
|
|
|
-
|
|
|
|
- return new ConnectionConfigurator() {
|
|
|
|
- @Override
|
|
|
|
- public HttpURLConnection configure(HttpURLConnection conn)
|
|
|
|
- throws IOException {
|
|
|
|
- if (conn instanceof HttpsURLConnection) {
|
|
|
|
- HttpsURLConnection c = (HttpsURLConnection) conn;
|
|
|
|
- c.setSSLSocketFactory(sf);
|
|
|
|
- c.setHostnameVerifier(hv);
|
|
|
|
- }
|
|
|
|
- URLConnectionFactory.setTimeouts(conn, connectTimeout, readTimeout);
|
|
|
|
- return conn;
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* Opens a url with read and connect timeouts
|
|
* Opens a url with read and connect timeouts
|
|
*
|
|
*
|
|
@@ -242,4 +209,10 @@ public class URLConnectionFactory {
|
|
connection.setConnectTimeout(connectTimeout);
|
|
connection.setConnectTimeout(connectTimeout);
|
|
connection.setReadTimeout(readTimeout);
|
|
connection.setReadTimeout(readTimeout);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public void destroy() {
|
|
|
|
+ if (connConfigurator instanceof SSLConnectionConfigurator) {
|
|
|
|
+ ((SSLConnectionConfigurator) connConfigurator).destroy();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|