2016-07-24 21 views
2

In meiner krb5.conf-Datei habe ich die Ticketlebensdauer zu Testzwecken auf 10 Minuten (ticket_lifetime = 10m) konfiguriert. Wenn ich kinit von der Befehlszeile aus und dann klist ausführen, sehe ich, dass die Lebensdauer des Tickets 10 Minuten beträgt. Wenn ich mich jedoch aus Java-Code anmelde, wird die Lebensdauer meines Tickets in meiner krb5.conf-Datei ignoriert und die Standardlebensdauer von 1 Tag wird verwendet. Ich habe -Dsun.security.krb5.debug=true eingestellt und kann sehen, dass meine benutzerdefinierte krb5.conf Datei geladen wird, aber die ticket_lifetime scheint nicht geehrt zu werden. Ist dies eine Einschränkung der Java-Kerberos-Implementierung oder gibt es eine andere Möglichkeit, die Lebensdauer des Tickets von Java aus festzulegen?Wie stellen Sie die Lebensdauer des Kerberos-Tickets in Java ein?

+0

Um wirklich zu verstehen, wie Java-Prozesse Ihre Kerberos/JAAS Config, sollten Sie setzen '-Djava.security.debug = gssloginconfig, configfile, ConfigParser, logincontext' –

+0

Wenn Sie ein paar lernen wollen Schlechte Dinge über JAAS, werfen Sie einen Blick in https://stevelogran.gitbooks.io/kerberos_and_hadoop/content/sections/jaas.html und https://stevelogran.gitbooks.io/kerberos_and_hadoop/content/sections/jdk_versions.html (diese Kapitel sind nicht spezifisch für Hadoop) –

Antwort

2

Dies ist mit keiner derzeit freigegebenen Version von Java möglich. Java 9 berücksichtigt die Konfigurationen ticket_lifetime und renew_lifetime. Das OpenJDK Ticket hat weitere Informationen: https://bugs.openjdk.java.net/browse/JDK-8044500