检查Kerberos KeyTab文件在Java中是否有效

时间:2018-03-28 00:43:23

标签: java kerberos gssapi keytab

我正在开发一个Java代码库,用于检查Kerberos KeyTab文件是否有效,但它使用内部类SELECT (count(column1)) - count(column2)) from table; 作为其sun.security.krb5.internal.ktab.KeyTab方法。目前,它正在执行以下操作:

isValid()

在Java 9中访问此方法更令人烦恼,所以我正在寻找避免使用此内部类的方法,但浏览JDK源代码时,我还没有看到任何暴露{{1}的内容方法或非内部类中的等价物。

是否存在不依赖于黑客的选项,如反映私有方法或访问内部API?

1 个答案:

答案 0 :(得分:2)

<强> 1)

您可以尝试使用本机可执行文件验证密钥表文件,并按照输出继续以通过java ProcessBuilder确定有效性。例如对于linux / * nix,你可以运行

klist -k –t your.keytab

<强> 2)

因为,你已经提到了排除访问内部API的愿望,我假设你知道这些选项。但只是在这里包括这个特定案例的信息:

javac --add-exports java.security.jgss/sun.security.krb5.internal.ktab=ALL-UNNAMED your-class.java
java --add-exports java.security.jgss/sun.security.krb5.internal.ktab=ALL-UNNAMED your-class

第3)

您也可以推出自己的验证器。我认为source并不复杂。