次のコードは、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 を再起動せずに最新の変更を取得できるように、JVM を指定して krb5.conf をリロードする方法があるかどうかを知りたいです。