从Java运行kinit进行keytab登录

时间:2019-10-02 01:41:53

标签: kerberos

我具有以下使用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();

0 个答案:

没有答案