Rechargez la configuration Kerberos en JAVA sans redémarrer la machine virtuelle Java

StackOverflow https://stackoverflow.com/questions/1437281

  •  08-07-2019
  •  | 
  •  

Question

Le code suivant est destiné à l'authentification sur un serveur Windows AD à l'aide de Java + Kerberos et fonctionne correctement -

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

Ce qui précède n’est qu’un programme de test. Le code réel sera exécuté dans une application Web tomcat. Le problème auquel je suis confronté est que, si le fichier krb5.conf est modifié, la même chose n'est pas reflétée dans le tomcat, si une authentification réussie a déjà eu lieu une fois avec la version antérieure de krb5.conf. Les nouvelles modifications ne concernent que le redémarrage de tomcat.

Je souhaite savoir s’il existe un moyen de spécifier la machine virtuelle Java pour recharger le fichier krb5.conf afin d’obtenir les dernières modifications sans redémarrer la machine virtuelle.

Était-ce utile?

La solution

refreshKrb5Config = true doit être défini pour KRB5LoginModule dans jaas.conf.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top