Domanda

Il codice seguente è per l'autenticazione su un server Windows AD usando Java + Kerberos e funziona bene-

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

Quanto sopra è solo un programma di test. Il codice effettivo verrà eseguito in un'app Web Tomcat. Il problema che sto affrontando è che, se il file krb5.conf cambia, lo stesso non si riflette nel tomcat, se un'autenticazione corretta è già avvenuta una volta con la versione precedente di krb5.conf. Le nuove modifiche si riflettono solo sul riavvio di Tomcat.

Voglio sapere se esiste un modo per specificare la JVM per ricaricare krb5.conf in modo che ottenga le ultime modifiche senza riavviare la JVM.

È stato utile?

Soluzione

refreshKrb5Config = true deve essere impostato per il KRB5LoginModule in jaas.conf.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top