Recarregar Kerberos config na JAVA sem reiniciar JVM
Pergunta
O código a seguir é para autenticação para um servidor Windows AD usando Java + Kerberos e funciona bem -
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);
}
}
A descrição acima é um apenas um programa de teste. O código real será executado em um webapp tomcat. O problema que estou enfrentando é que, se as alterações de arquivos krb5.conf, o mesmo não se reflete no tomcat, se uma autenticação bem-sucedida já aconteceu uma vez com a versão anterior do krb5.conf. As novas mudanças refletem apenas no reinício do tomcat.
Eu quero saber se existe uma maneira de especificar a JVM para recarregar a krb5.conf para que ele receba as últimas alterações sem reiniciar o JVM.
Solução
refreshKrb5Config=true
deve ser definido para o Krb5LoginModule em Jaas.conf.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow