我们无法使用java代码从keytab续订kerberos用户票,而它正在使用" kinit -R"
代码:
UserGroupInformation loginUser = UserGroupInformation.getLoginUser(); loginUser.checkTGTAndReloginFromKeytab();
请帮帮我。
答案 0 :(得分:0)
你是否在流程开始前做了一个kinit? 只有这样才能更新。
您的程序运行在同一用户下的keytab?即用户是否有权更新密钥表。
确切的堆栈跟踪是什么?
也许这对您有用,指向您的密钥表的确切位置。因为当你没有keytab进行更新时,它是无意义的。
import org.apache.hadoop.security.UserGroupInformation;
org.apache.hadoop.conf.Configuration conf = new
org.apache.hadoop.conf.Configuration();
conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("example_user@IBM.COM", "/path/to/example_user.keytab");