如何为hiveserver2提供简单的propertyfile或数据库用户/密码身份验证?我已经找到了这个演示文稿,但不是英文的:(。在cloudera参考手册中,他们谈到 hive.server2.authentication 财产。它支持 CUSTOM 接口的实现 hive.server2.custom.authentication .如何实施?
hive.server2.authentication
CUSTOM
hive.server2.custom.authentication
z9gpfhce1#
本质上,您必须提供一个可以执行身份验证的java应用程序。可能您正在对mysql或postgres数据库或平面文件进行身份验证,等等。您需要提供一个jar来实现org.apache.hive.service.auth.passwdauthenticationprovider接口。一个简单的例子:
package org.apache.hive.service.auth.PasswdAuthenticationProvider.SampleAuth; import java.util.Hashtable; import javax.security.sasl.AuthenticationException; import org.apache.hive.service.auth.PasswdAuthenticationProvider; /* javac -cp $HIVE_HOME/lib/hive-service-0.12.0-cdh5.0.0-beta-2.jar SampleAuthenticator.java -d . jar cf sampleauth.jar hive cp sampleauth.jar $HIVE_HOME/lib/. * / public class SampleAuthenticator implements PasswdAuthenticationProvider { Hashtable<String, String> store = null; public SampleAuthenticator () { store = new Hashtable<String, String>(); store.put("user1", "passwd1"); store.put("user2", "passwd2"); } @Override public void Authenticate(String user, String password) throws AuthenticationException { String storedPasswd = store.get(user); if (storedPasswd != null && storedPasswd.equals(password)) return; throw new AuthenticationException("SampleAuthenticator: Error validating user"); } }
然后在hive-site.xml中,使用新创建的自定义身份验证jar:
<property> <name>hive.server2.authentication</name> <value>CUSTOM</value> </property> <property> <name>hive.server2.custom.authentication.class</name> <value>org.apache.hive.service.auth.PasswdAuthenticationProvider.SampleAuth</value> </property>
1条答案
按热度按时间z9gpfhce1#
本质上,您必须提供一个可以执行身份验证的java应用程序。可能您正在对mysql或postgres数据库或平面文件进行身份验证,等等。您需要提供一个jar来实现org.apache.hive.service.auth.passwdauthenticationprovider接口。
一个简单的例子:
然后在hive-site.xml中,使用新创建的自定义身份验证jar: