Ошибка 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.

Другие вопросы по тегам