Ошибка Kerberos: GSSHeader не нашел правильный тег
Я пытаюсь установить соединение аутентификации Kerberos с URL-адресом wsdl службы SOAP. Я могу успешно установить соединение и совершать сервисные звонки. После запуска сервера я могу сделать успешный сервисный вызов хотя бы один раз. Однако после нескольких запросов (1 или более) я внезапно получаю неверную ошибку токена. Как только я получаю сообщение об ошибке, будущие вызовы не работают, и ошибка сохраняется.
ЕСЛИ я перезагружаю свой сервер, то снова сервисный вызов работает хотя бы один раз. И выше цикл продолжается.
Я не могу понять, почему токен вдруг становится недействительным, хотя раньше он работал. И перезапуск сервера делает токен снова действительным.
Вот ошибка трассировки стека:
Caused by: GSSException: Defective token detected (Mechanism level: GSSHeader did not find the right tag)
at sun.security.jgss.GSSHeader.<init>(GSSHeader.java:97)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:237)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
2 ответа
Я не смог найти основную причину, по которой токен недействителен. Но вот как я могу обойти эту проблему.
Моя аутентификация работала в первый раз после перезапуска сервера, и бин снова загружается в контексте. Таким образом, я изменил область применения моего весеннего боба на prototype
так что каждый раз, когда создается новый прокси-компонент.
Не видя значения Base 64 или шестнадцатеричного дампа, я предполагаю, что клиент отправляет маркер NTLM типа 1, а Java не поддерживает NTLM.