Hadoop 在不引发异常的情况下测试Kerberos身份验证

Hadoop 在不引发异常的情况下测试Kerberos身份验证,hadoop,hdfs,kerberos,Hadoop,Hdfs,Kerberos,我正在使用HDFS键表对API调用执行某些超级用户操作。键盘大约每6个月更换一次,如果出现漏洞,有时会更频繁。无论何时,我的应用程序都需要通过SSH从远程主机获取最新的密钥表 出于性能原因,在每次API调用中,我都想确定现有的keytab是否仍然有效和最新。(如果没有,就不需要获取它。)一种方法是尝试使用keytab,如果抛出异常,则获取新的keytab。然而,我不喜欢这种方法,因为我明白这一点 理想情况下,我会查询某种API来检查当前键表的有效性,并仅在必要时获取最新的键表。UserGroup

我正在使用HDFS键表对API调用执行某些超级用户操作。键盘大约每6个月更换一次,如果出现漏洞,有时会更频繁。无论何时,我的应用程序都需要通过SSH从远程主机获取最新的密钥表

出于性能原因,在每次API调用中,我都想确定现有的keytab是否仍然有效和最新。(如果没有,就不需要获取它。)一种方法是尝试使用keytab,如果抛出异常,则获取新的keytab。然而,我不喜欢这种方法,因为我明白这一点


理想情况下,我会查询某种API来检查当前键表的有效性,并仅在必要时获取最新的键表。
UserGroupInformation
javaapi是否提供了一种实现这一点的方法?

我认为在这种情况下(每N个月一次),这不是一种反模式。如果您的keytab无效,则对
UserGroupInformation.loginuserfromkeytab和turnugi的调用将引发异常。我看不到任何其他方法可用于检查密钥表的有效性。理想情况下,下一个密码应该提前几个小时知道,然后再强制执行。这样,它就可以附加到现有的keytab中,并具有更高的
kvno
。kerberos客户端需要获得最高的
kvno
并尝试连接,如果出现错误,请使用前面的
kvno
重试。。。因此解决了密码更新的任何问题(包括主KDC和从KDC之间的复制延迟问题)。