springmvc整合kerberos認證hive jdbc連線
阿新 • • 發佈:2018-12-21
話說,是springmvc連線hive沒啥問題,那如果是kerberos認證的hive怎麼連
<beans:bean id="jdbcListener" class="com.bonc.bm.core.listener.JdbcListener"> <beans:constructor-arg name="kerberos" value="true"></beans:constructor-arg> </beans:bean> <beans:bean id="hiveDriver" class="org.apache.hive.jdbc.HiveDriver" /> <beans:bean id="hiveDataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource" depends-on="jdbcListener"> <beans:constructor-arg name="driver" ref="hiveDriver"/> <beans:constructor-arg name="url" value="${hive.url}"/> </beans:bean> <beans:bean id="hiveTemplete" class="org.springframework.jdbc.core.JdbcTemplate"> <beans:property name="dataSource" ref="hiveDataSource"></beans:property> </beans:bean>
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * author:SK * date:2018/9/26 * name: */ public class JdbcListener { private Boolean kerberos; public JdbcListener(Boolean kerberos){ this.kerberos = kerberos; if (kerberos){ //System.setProperty("java.security.krb5.conf", "krb5.conf"); System.setProperty("java.security.krb5.conf", "/data/bonc_zhfk/conf_files/krb5.conf"); Configuration configuration = new Configuration(); configuration.set("hadoop.security.authentication" , "kerberos" ); // 這樣我們就不需要互動式輸入密碼了 configuration.set("keytab.file" , "bcc.keytab" ); configuration.setBoolean("hadoop.security.authorization", true); // 這個可以理解成使用者名稱資訊,也就是Principal configuration.set("kerberos.principal" , "hive/
[email protected]" ); try { UserGroupInformation. setConfiguration(configuration); UserGroupInformation.loginUserFromKeytab("hive/[email protected]", "bonc_zhfk.keytab"); } catch (IOException e) { e.printStackTrace(); } } } }
其中 krb5.conf有許可權限制
-r-------- 1 bcc.keytab
-rw-r--r-- 1 krb5.conf