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.

Foi útil?

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
scroll top