Pregunta

El siguiente código es para autenticarse en un servidor de Windows AD usando Java + Kerberos y funciona bien-

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

Lo anterior es solo un programa de prueba. El código real se ejecutará en una aplicación web tomcat. El problema al que me enfrento es que, si el archivo krb5.conf cambia, lo mismo no se refleja en el tomcat, si una autenticación exitosa ya ha sucedido una vez con la versión anterior de krb5.conf. Los nuevos cambios solo se reflejan al reiniciar Tomcat.

Quiero saber si hay una manera de especificar la JVM para volver a cargar el krb5.conf para que obtenga los últimos cambios sin reiniciar la JVM.

¿Fue útil?

Solución

refreshKrb5Config = true debe establecerse para el KRB5LoginModule en jaas.conf.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top