JDK8に1人はそうのようなkeytabファイルを作ることができる:はキータブJava9に
は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では、これは
javax.security.auth.kerberos.KeyTab
error: package sun.security.krb5 is not visible
あり生成するが不足しit表示されますktabとパスワード機能。
Java9でキータブファイルを作成する最も良い方法は何ですか?
JDK8の1.5M sun.security.jarを使用するのが理想的ではありません。
ProcessBuilderのktabを使用する方が良いが、まだ醜いですが、ktabはJRE/JDK(8または9)には含まれていません。
これは、sun。*クラスを使用しない理由です。それらはJVMの内部であり、宣伝されているものはいつでも消えることがあります。 –
@RomainHippeauはい、私はそれが最良の選択肢が何であるかを尋ねている理由を理解しています。 – user1133275
あなた自身のktab.exeツールを実行しようとしていますか?なぜProcessBuilder/Processを使ってそれを実行しないのか不思議です。いずれにしても、JDK 9の変更は、コンパイル時にJDK内部クラスにアクセスできないことです。これについては、JDK 9のドキュメントとリリースノートを参照してください。 –