Repository: hadoop Updated Branches: refs/heads/trunk cedaf4cab -> 8b82317fa
HADOOP-14352. Make some HttpServer2 SSL properties optional (jzhuge via rkanter) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8b82317f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8b82317f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8b82317f Branch: refs/heads/trunk Commit: 8b82317fab0cb3023da333d4d557e226712a9c92 Parents: cedaf4c Author: Robert Kanter <[email protected]> Authored: Tue May 2 17:51:28 2017 -0700 Committer: Robert Kanter <[email protected]> Committed: Tue May 2 17:51:28 2017 -0700 ---------------------------------------------------------------------- .../org/apache/hadoop/http/HttpServer2.java | 45 ++++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/8b82317f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer2.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer2.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer2.java index cbabb33..0891e8e 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer2.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer2.java @@ -348,18 +348,17 @@ public final class HttpServer2 implements FilterContainer { /** * A wrapper of {@link Configuration#getPassword(String)}. It returns - * <code>String</code> instead of <code>char[]</code> and throws - * {@link IOException} when the password not found. + * <code>String</code> instead of <code>char[]</code>. * * @param conf the configuration * @param name the property name - * @return the password string + * @return the password string or null */ - private static String getPassword(Configuration conf, String name) + private static String getPasswordString(Configuration conf, String name) throws IOException { char[] passchars = conf.getPassword(name); if (passchars == null) { - throw new IOException("Password " + name + " not found"); + return null; } return new String(passchars); } @@ -371,20 +370,30 @@ public final class HttpServer2 implements FilterContainer { if (sslConf == null) { return; } - needsClientAuth(sslConf.getBoolean( + needsClientAuth = sslConf.getBoolean( SSLFactory.SSL_SERVER_NEED_CLIENT_AUTH, - SSLFactory.SSL_SERVER_NEED_CLIENT_AUTH_DEFAULT)); - keyStore(sslConf.get(SSLFactory.SSL_SERVER_KEYSTORE_LOCATION), - getPassword(sslConf, SSLFactory.SSL_SERVER_KEYSTORE_PASSWORD), - sslConf.get(SSLFactory.SSL_SERVER_KEYSTORE_TYPE, - SSLFactory.SSL_SERVER_KEYSTORE_TYPE_DEFAULT)); - keyPassword(getPassword(sslConf, - SSLFactory.SSL_SERVER_KEYSTORE_KEYPASSWORD)); - trustStore(sslConf.get(SSLFactory.SSL_SERVER_TRUSTSTORE_LOCATION), - getPassword(sslConf, SSLFactory.SSL_SERVER_TRUSTSTORE_PASSWORD), - sslConf.get(SSLFactory.SSL_SERVER_TRUSTSTORE_TYPE, - SSLFactory.SSL_SERVER_TRUSTSTORE_TYPE_DEFAULT)); - excludeCiphers(sslConf.get(SSLFactory.SSL_SERVER_EXCLUDE_CIPHER_LIST)); + SSLFactory.SSL_SERVER_NEED_CLIENT_AUTH_DEFAULT); + keyStore = sslConf.getTrimmed(SSLFactory.SSL_SERVER_KEYSTORE_LOCATION); + if (keyStore == null || keyStore.isEmpty()) { + throw new IOException(String.format("Property %s not specified", + SSLFactory.SSL_SERVER_KEYSTORE_LOCATION)); + } + keyStorePassword = getPasswordString(sslConf, + SSLFactory.SSL_SERVER_KEYSTORE_PASSWORD); + if (keyStorePassword == null) { + throw new IOException(String.format("Property %s not specified", + SSLFactory.SSL_SERVER_KEYSTORE_PASSWORD)); + } + keyStoreType = sslConf.get(SSLFactory.SSL_SERVER_KEYSTORE_TYPE, + SSLFactory.SSL_SERVER_KEYSTORE_TYPE_DEFAULT); + keyPassword = getPasswordString(sslConf, + SSLFactory.SSL_SERVER_KEYSTORE_KEYPASSWORD); + trustStore = sslConf.get(SSLFactory.SSL_SERVER_TRUSTSTORE_LOCATION); + trustStorePassword = getPasswordString(sslConf, + SSLFactory.SSL_SERVER_TRUSTSTORE_PASSWORD); + trustStoreType = sslConf.get(SSLFactory.SSL_SERVER_TRUSTSTORE_TYPE, + SSLFactory.SSL_SERVER_TRUSTSTORE_TYPE_DEFAULT); + excludeCiphers = sslConf.get(SSLFactory.SSL_SERVER_EXCLUDE_CIPHER_LIST); } public HttpServer2 build() throws IOException { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
