本案例在测试中很实用噢!
上代码:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
import java.io.IOException;
public class KerberosProvider {
public static final String krb5Conf = "D:\\configs\\krb5.conf";
public static final String keytab = "D:\\configs\\xxx.keytab";
public static final String principal = "xxx@XXXXX.COM";
static {
System.setProperty("java.security.krb5.conf", krb5Conf);
}
public static void login(){
try {
Configuration conf = new Configuration();
conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab(principal, keytab);
String userName = UserGroupInformation.getLoginUser().getUserName();
String method = UserGroupInformation.getLoginUser().getAuthenticationMethod().toString();
System.out.printf("kerberos login username [%s] for method [%s]%n",userName,method);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
本文介绍了如何使用ApacheHadoop的Kerberos认证机制进行登录,包括配置环境变量、设置安全认证类型和使用keytab文件进行用户身份验证。

被折叠的 条评论
为什么被折叠?



