문제

다음 코드는 Java+Kerberos를 사용하여 Windows AD 서버에 인증하는 것이며 잘 작동합니다.

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

위는 단지 테스트 프로그램입니다. 실제 코드는 Tomcat WebApp에서 실행됩니다. 내가 직면하고있는 문제는 krb5.conf 파일이 변경되면 krb5.conf의 이전 버전과 함께 성공적인 인증이 이미 발생한 경우 Tomcat에 동일하게 반영되지 않는다는 것입니다. 새로운 변경 사항은 Tomcat의 재시작에만 반영됩니다.

JVM을 다시로드 할 JVM을 지정하여 JVM을 다시 시작하지 않고 최신 변경 사항을 얻을 수있는 방법이 있는지 알고 싶습니다.

도움이 되었습니까?

해결책

refreshKrb5Config=true jaas.conf에서 krb5loginmodule에 대해 설정해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top