diff --git common/src/java/org/apache/hadoop/hive/conf/HiveConf.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index 5c1b283..b963de7 100644 --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -708,7 +708,7 @@ // HiveServer2 auth configuration - HIVE_SERVER2_AUTHENTICATION("hive.server2.authentication", "NONE"), + HIVE_SERVER2_AUTHENTICATION("hive.server2.authentication", "PLAINSASL"), HIVE_SERVER2_KERBEROS_KEYTAB("hive.server2.authentication.kerberos.keytab", ""), HIVE_SERVER2_KERBEROS_PRINCIPAL("hive.server2.authentication.kerberos.principal", ""), HIVE_SERVER2_PLAIN_LDAP_URL("hive.server2.authentication.ldap.url", null), diff --git conf/hive-default.xml.template conf/hive-default.xml.template index 6d2526c..6f9f5b1 100644 --- conf/hive-default.xml.template +++ conf/hive-default.xml.template @@ -1806,6 +1806,7 @@ Client authentication types. NONE: no authentication check + PLAINSASL: User/password based authentication LDAP: LDAP/AD based authentication KERBEROS: Kerberos/GSSAPI authentication CUSTOM: Custom authentication provider diff --git jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java index 17b4d39..904b318 100644 --- jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java +++ jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java @@ -64,10 +64,12 @@ */ public class HiveConnection implements java.sql.Connection { private static final String HIVE_AUTH_TYPE= "auth"; - private static final String HIVE_AUTH_SIMPLE = "noSasl"; - private static final String HIVE_AUTH_USER = "user"; - private static final String HIVE_AUTH_PRINCIPAL = "principal"; - private static final String HIVE_AUTH_PASSWD = "password"; + private static final String HIVE_AUTH_NONE= "none"; + private static final String HIVE_AUTH_KERBEROS = "kerberos"; + private static final String HIVE_KERBEROS_PRINCIPAL = "principal"; + private static final String HIVE_AUTH_PLAIN = "plainsasl"; + private static final String HIVE_PLAIN_USER = "user"; + private static final String HIVE_PLAIN_PASSWD = "password"; private static final String HIVE_ANONYMOUS_USER = "anonymous"; private static final String HIVE_ANONYMOUS_PASSWD = "anonymous"; @@ -86,10 +88,10 @@ public HiveConnection(String uri, Properties info) throws SQLException { client = new EmbeddedThriftCLIService(); } else { // extract user/password from JDBC connection properties if its not supplied in the connection URL - if (info.containsKey(HIVE_AUTH_USER)) { - connParams.getSessionVars().put(HIVE_AUTH_USER, info.getProperty(HIVE_AUTH_USER)); - if (info.containsKey(HIVE_AUTH_PASSWD)) { - connParams.getSessionVars().put(HIVE_AUTH_PASSWD, info.getProperty(HIVE_AUTH_PASSWD)); + if (info.containsKey(HIVE_PLAIN_USER)) { + connParams.getSessionVars().put(HIVE_PLAIN_USER, info.getProperty(HIVE_PLAIN_USER)); + if (info.containsKey(HIVE_PLAIN_PASSWD)) { + connParams.getSessionVars().put(HIVE_PLAIN_PASSWD, info.getProperty(HIVE_PLAIN_PASSWD)); } } @@ -122,23 +124,23 @@ private void configureConnection(Utils.JdbcConnectionParams connParams) } } - private void openTransport(String uri, String host, int port, Map sessConf ) - throws SQLException { + private void openTransport(String uri, String host, int port, Map sessConf) + throws SQLException { transport = new TSocket(host, port); - // handle secure connection if specified - if (!sessConf.containsKey(HIVE_AUTH_TYPE) - || !sessConf.get(HIVE_AUTH_TYPE).equals(HIVE_AUTH_SIMPLE)){ + // Default behavior is to use a plain SASL transport unless otherwise specified. + if (! sessConf.containsKey(HIVE_AUTH_TYPE) + || ! sessConf.get(HIVE_AUTH_TYPE).equalsIgnoreCase(HIVE_AUTH_NONE)) { try { - if (sessConf.containsKey(HIVE_AUTH_PRINCIPAL)) { + if (sessConf.containsKey(HIVE_KERBEROS_PRINCIPAL)) { transport = KerberosSaslHelper.getKerberosTransport( - sessConf.get(HIVE_AUTH_PRINCIPAL), host, transport); + sessConf.get(HIVE_KERBEROS_PRINCIPAL), host, transport); } else { - String userName = sessConf.get(HIVE_AUTH_USER); + String userName = sessConf.get(HIVE_PLAIN_USER); if ((userName == null) || userName.isEmpty()) { userName = HIVE_ANONYMOUS_USER; } - String passwd = sessConf.get(HIVE_AUTH_PASSWD); + String passwd = sessConf.get(HIVE_PLAIN_PASSWD); if ((passwd == null) || passwd.isEmpty()) { passwd = HIVE_ANONYMOUS_PASSWD; } @@ -146,7 +148,7 @@ private void openTransport(String uri, String host, int port, Map