JVM을 다시 시작하지 않고 Java의 Kerberos 구성을 Reload Kerberos 구성
문제
다음 코드는 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에 대해 설정해야합니다.
제휴하지 않습니다 StackOverflow