Java не может найти мое основное имя в моем собственном файле таблицы ключей?
Я ожидал, что модуль Java JAAS сгенерирует TGT, когда он найдет принципала в моем файле таблицы ключей. Я также использовал kinit для того же файла keytab, и это работает.
Хотя JAAS находит keytab, как указано в файле конфигурации, я получаю следующее сообщение:
...
Native config name: C:\Windows\krb5.ini
getRealmFromDNS: trying YEF.GSC.RD
Acquire TGT from Cache
>>>KinitOptions cache name is C:\Users\tester1\krb5cc_tester1
>> Acquire default native Credentials
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 17 16 23.
LSA: Found KrbCreds constructor
LSA: Got handle to Kerberos package
LSA: Response size is 0
LSA: Error calling function Protocol status: 1312
LSA: A specified logon session does not exist. It may already have been terminated.
>>> Found no TGT's in LSA
Principal is [email protected]
null credentials from Ticket Cache
Looking for keys for: [email protected]
Key for the principal [email protected] not available in c:/user/tester1/keytab
(Я использовал флаг отладки -Dsun.security.krb5.debug=true, чтобы получить эти сведения, и запустил его автономно вместо веб-запуска, просто чтобы начать работу без дополнительных затрат на запуск веб-запуска)
В конфигурационном файле написано:
WEBSTART_CLIENT_CONTEXT {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=false
principal=john
renewTGT=true
useKeyTab=true
keyTab="c:/user/tester1/keytab"
debug=true;
};
Файл keytab, который я сгенерировал локально на клиентской машине:
c:\Users\tester1>klist -k -t -K -e keytab
Key tab: keytab, 6 entries found.
[1] Service principal: [email protected]
KVNO: 1
Key type: 17
Key: 0x2dccdcd29d17e2719eb5af9f1b0f7448
Time stamp: Oct 30, 2015 15:37:02
[2] Service principal: [email protected]
KVNO: 1
Key type: 16
Key: 0xcd10890becd5fbcb526e9104765116807a5ecd38da762ab0
Time stamp: Oct 30, 2015 15:37:02
[3] Service principal: [email protected]
KVNO: 1
Key type: 23
Key: 0xb9218bada80f02c685e1958a5042f5fc
Time stamp: Oct 30, 2015 15:37:02
[4] Service principal: [email protected]
KVNO: 1
Key type: 17
Key: 0x7d4b7a98e179d7284dcd7ff3a69c890e
Time stamp: Nov 02, 2015 13:24:37
[5] Service principal: [email protected]
KVNO: 1
Key type: 16
Key: 0x4ca17a0b2a58679207162cf13864c143d05e869101b5a2ef
Time stamp: Nov 02, 2015 13:24:37
[6] Service principal: [email protected]
KVNO: 1
Key type: 23
Key: 0xb9218bada80f02c685e1958a5042f5fc
Time stamp: Nov 02, 2015 13:24:37
Но по какой-то причине JAAS не может найти [email protected], так как пишет:
Ключ для принципала [email protected] недоступен в c:/user/tester1/keytab
Кто-то в Интернете упомянул, что KVNO равен 0. Поэтому я также проверил это, используя:
ktab -k keytab -a [email protected] -n 0
Но произошла точно такая же ошибка. Хотелось бы знать, что java ожидает найти в keytab.
Использование Java 1.8.0 на компьютере с Windows 7
-Djava.security.debug=configfile,gssloginconfig,configparser,logincontext
- person Samson Scharfrichter   schedule 05.11.2015