重新加载JAVA Kerberos的配置,无需重新启动JVM(Reload Kerberos con

2019-07-18 07:40发布

下面的代码是用于验证使用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 Web应用程序运行。 我面临的问题是,如果krb5.conf文件的变化,同样没有反映在tomcat,如果认证成功已与krb5.conf的早期版本发生过一次。 新的变化只反映在Tomcat的重新启动。

我想知道是否有指定JVM重新加载在krb5.conf使其得到不重新启动JVM的最新变化的方式。

Answer 1:

OK,解决了这一之一。

refreshKrb5Config =真应该在的Jaas.conf的KRB5LoginModule进行设置。



文章来源: Reload Kerberos config in JAVA without restarting JVM