JVMを再起動せずに、JAVAでKerberos設定をリロードします
質問
次のコードは、Java + Kerberosを使用してWindows ADサーバーを認証するためのもので、正常に動作します-
public class KerberosAuthenticator {
public static void main(String[] args) {
String jaasConfigFilePath = "/myDir/jaas.conf";
System.setProperty("java.security.auth.login.config", jaasConfigFilePath);
String krb5ConfigFilePath = "/etc/krb5/krb5.conf";
System.setProperty("java.security.krb5.conf", krb5ConfigFilePath);
boolean success = auth.KerberosAuthenticator.authenticate("testprincipal", "testpass");
System.out.println(success);
}
}
上記は単なるテストプログラムです。実際のコードは、tomcat webappで実行されます。私が直面している問題は、krb5.confファイルが変更されても、以前のバージョンのkrb5.confで認証に成功したことがある場合、同じことがTomcatに反映されないことです。新しい変更は、Tomcatの再起動時にのみ反映されます。
JVMを再起動せずに最新の変更を取得できるように、krb5.confをリロードするJVMを指定する方法があるかどうかを知りたい。
解決
jaas.confのKRB5LoginModuleに
refreshKrb5Config = true
を設定する必要があります。
所属していません StackOverflow