2016-07-24 3 views
2

В моем файле krb5.conf я настроил срок службы билета на 10 минут (ticket_lifetime = 10m) для целей тестирования. Когда I kinit из командной строки, а затем запустите klist, я вижу, что срок службы билета составляет 10 минут. Однако, когда я вхожу в систему с Java-кода, кажется, что срок службы билета в моем файле krb5.conf игнорируется и используется время жизни по умолчанию 1 день. Я установил -Dsun.security.krb5.debug=true и могу видеть, что мой пользовательский файл krb5.conf загружается, но ticket_lifetime, похоже, не соблюдается. Является ли это ограничением реализации Java Kerberos или существует другой способ установить срок службы билета на Java?Как установить срок службы билета Kerberos с Java?

+0

Чтобы действительно понять, как Java обработает Kerberos/JAAS конфигурации, вы должны установить '-Djava.security.debug = gssloginconfig, CONFIGFILE, ConfigParser, logincontext' –

+0

Если вы хотите узнать несколько отвратительные вещи о JAAS, посмотрите на https://steveloughran.gitbooks.io/kerberos_and_hadoop/content/sections/jaas.html и https://steveloughran.gitbooks.io/kerberos_and_hadoop/content/sections/jdk_versions.html (эти главы не относятся к Hadoop) –

ответ

2

Это невозможно в любой выпущенной в настоящее время версии Java. Java 9 будет соблюдать конфигурации ticket_lifetime и renew_lifetime. Это OpenJDK билет имеет больше информации: https://bugs.openjdk.java.net/browse/JDK-8044500