如何从 Java 开始设置 Kerberos 票证生命周期?

How do you set the Kerberos ticket lifetime from Java?

在我的 krb5.conf 文件中,出于测试目的,我已将票证有效期配置为 10 分钟 (ticket_lifetime = 10m)。当我从命令行 kinit 然后 运行 klist 时,我看到票证有效期为 10 分钟。但是,当我从 Java 代码登录时,我的 krb5.conf 文件中的票证生命周期似乎被忽略了,并使用了 1 天的默认生命周期。我已经设置了 -Dsun.security.krb5.debug=true 并且可以看到我的自定义 krb5.conf 文件正在加载,但是 ticket_lifetime 似乎没有被接受。这是 Java Kerberos 实现的限制,还是有其他方法可以从 Java 设置票证生命周期?

Java 当前发布的任何版本都不可能做到这一点。 Java 9 将遵循 ticket_lifetime 和 renew_lifetime 配置。这张 OpenJDK 票有更多信息:https://bugs.openjdk.java.net/browse/JDK-8044500