我具有以下使用keytab登录kerberos的代码段。
Configuration conf = HBaseConfiguration.create();
conf.addResource("hbase-site.xml");
Connection connection = ConnectionFactory.createConnection(conf);
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytabAndReturnUGI(user, keytabpath);
根据安全标准,我们还将环境中的续订寿命设置为7天。因此,尽管应用程序代码尝试续签,但以上代码在7天后的最后一天都有效,但是对于“续签直到”约束,它失败了。我必须手动执行kinit才能使接下来的7天正常工作。
是否有替代方法可以在应用程序代码级别进行处理?我正在探索在环境级别上要处理但有限制的选项。 我尝试了此链接中的建议,但没有成功: HBase Kerberos connection renewal strategy
已更新klist详细信息:
[Fri 04/10 05:30 PM] root@lxapp6479:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: uname@domain
Valid starting Expires Service principal
10/04/2019 11:10:19 10/05/2019 11:10:19
krbtgt/DOMAIN@ABC.COM
renew until 10/09/2019 12:32:35
鉴于新票证已在10/04续签,续签应推迟到10/11,但以下api调用不会发生这种情况:
UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();