Frage

Der folgende Code ist zu einem Windows-AD-Server der Authentifizierung mit Hilfe von Java + Kerberos und es funktioniert gut -

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);
}
}

Das oben ist ein nur ein Testprogramm. Der eigentliche Code wird in einem Kater Webapp laufen. Das Problem, das ich mit Blick auf bin, ist, wenn die krb5.conf Datei ändert, wird das gleiche nicht in der tomcat reflektiert, wenn eine erfolgreiche Authentifizierung schon einmal passiert ist mit der früheren Version von krb5.conf. Die neuen Änderungen beziehen sich nur bei einem Neustart des Katers.

Ich möchte wissen, ob es eine Möglichkeit ist, die JVM geben Sie den krb5.conf neu zu laden, so dass er die letzten Änderungen erhält, ohne die JVM neu zu starten.

War es hilfreich?

Lösung

refreshKrb5Config=true sollte für die KRB5LoginModule in Jaas.conf eingestellt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top