Recarga la configuración de Kerberos en JAVA sin reiniciar JVM
tomcat jaas (1)
OK, resolvió este.
refreshKrb5Config = true se debe establecer para KRB5LoginModule en jaas.conf.
El siguiente código es para autenticarse en un servidor Windows AD que usa 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 de tomcat. El problema al que me enfrento es que si el archivo krb5.conf cambia, el mismo no se refleja en el tomcat, si una autenticación exitosa ya ocurrió una vez con la versión anterior de krb5.conf. Los nuevos cambios solo se reflejan en el reinicio de tomcat.
Quiero saber si hay una forma de especificar la JVM para volver a cargar krb5.conf para que obtenga los últimos cambios sin reiniciar la JVM.