本案例在测试中很实用噢!
上代码:
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);}}}