首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java9中的KeyTab

Java9中的KeyTab
EN

Stack Overflow用户
提问于 2017-09-01 00:59:14
回答 1查看 368关注 0票数 0

在JDK8中,你可以这样创建一个密钥表文件:

代码语言:javascript
复制
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中,这会产生

代码语言:javascript
复制
error: package sun.security.krb5 is not visible

的确有

代码语言:javascript
复制
javax.security.auth.kerberos.KeyTab

it似乎缺乏ktab和密码功能。

在Java9中创建密钥表文件的最好方法是什么?

使用来自JDK8的15M sun.security.jar是可行的,但并不理想。

使用ProcessBuilder中的ktab会更好,但仍然很难看,而且JRE/JDK (8或9)中没有包含ktab。

EN

回答 1

Stack Overflow用户

发布于 2017-09-12 17:47:32

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45986701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档