Ошибка Kerberos: GSSHeader не нашел правильный тег

Я пытаюсь установить соединение проверки подлинности Kerberos с url-адресом WSDL службы SOAP. Я могу успешно установить соединение и сделать служебные звонки. После запуска сервера я могу сделать успешный вызов службы хотя бы один раз. Однако после нескольких запросов (1 или более) я внезапно получаю недопустимую ошибку токена. Как только я получаю ошибку, будущие вызовы не работают, и ошибка сохраняется.

если я перезапущу свой сервер, то снова вызов службы работает хотя бы один раз. И над циклом продолжает.

Я не могу понять, почему вдруг токен становится недействительным, хотя он работал раньше. и перезапуск сервера делает токен снова действительным.

вот ошибка stacktrace:

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 ответов


Не видя базового значения 64 или шестнадцатеричного дампа, я предполагаю, что клиент отправляет токен NTLM типа 1, а Java не поддерживает NTLM.


Я не смог найти первопричину того, почему токен недействителен. Но вот как я обойду этот вопрос.

моя аутентификация работала в первый раз после перезагрузки сервера, и bean снова загружается в контексте. Поэтому я изменил область моего spring bean на prototype Так что каждый раз, когда создается новый прокси-компонент.