[英]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.