繁体   English   中英

Java9中的KeyTab

[英]KeyTab in Java9

在JDK8中,可以这样制作一个keytab文件:

static File a(String spn, String password) throws Exception {
    final File f = File.createTempFile("tmp_", ".ktab");
    final sun.security.krb5.internal.ktab.KeyTab ktab = sun.security.krb5.internal.ktab.KeyTab.create(f.getAbsolutePath());
    final sun.security.krb5.PrincipalName p = new sun.security.krb5.PrincipalName(spn, sun.security.krb5.PrincipalName.KRB_NT_SRV_HST);
    ktab.addEntry(p, password.toCharArray(), 1, true);
    ktab.save();
    return f;
}

在JDK9中,这产生了

error: package sun.security.krb5 is not visible

javax.security.auth.kerberos.KeyTab

似乎缺少ktab和密码功能。

在Java9中制作密钥表文件的最佳方法是什么?

使用JDK8中的1.5M sun.security.jar可以工作,但并不理想。

从ProcessBuilder使用ktab更好,但仍然很丑陋,并且JRE / JDK(8或9)中不包括ktab。

您使用的API是JRE内部的。 您可以使用Apache Kerby项目中的替代Kerberos实现。 有关示例 ,请参见KeytabAddCommand

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM