[spark]Spark thriftserver(HiveServer2) Custom认证

默认如果不配置的话,是不进行认证的。所以用beeline连接thriftserver时,可以填写任意用户名/密码,均可以认证成功。

下面是进行Custom认证配置的过程:

1.新建一个工程,引入spark-assembly-1.3.0-hadoop2.4.0.jar

需要实现PasswdAuthenticationProvider接口,代码如下:

package org.apache.hadoop.hive.contrib.auth;
import javax.security.sasl.AuthenticationException;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hive.service.auth.PasswdAuthenticationProvider;
public class Authticator implements PasswdAuthenticationProvider,Configurable{
	private Configuration conf = null;
	private String prefix = "org.spark.auth.";

	@Override
	public Configuration getConf() {
		if(this.conf == null){
			this.conf = new Configuration();
		}
		return this.conf;
	}

	@Override
	public void setConf(Configuration arg0) {
		this.conf = arg0;
	}

	@Override
	public void Authenticate(String username, String password) throws AuthenticationException { 
		if(username == null){
			throw new AuthenticationException("Login fail");
		}
		String realPass = this.conf.get(prefix+username);
		if(realPass == null || password == null || !realPass.equals(password)){
			throw new AuthenticationException("Login fail");
		}
	}
}

这里读取的,其实是hive-site.xml中配置的内容。将内容与输入的密码进行比对(按道理,应该存的时候md5,然后用md5值比对的;不过我为了方便,就没这样做)

2.hive-site.xml中的配置:

3.启动thriftserver

./start-thriftserver.sh --master local --driver-class-path /home/pijing/spark/auxlib/postgresql-9.4-1201.jdbc41.jar --jars /home/pijing/spark/lib/Authticator.jar

4.此时,就需要用用户名"pijing"和配置给"pijing"的密码进行登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值