Ошибка 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
Так что каждый раз, когда создается новый прокси-компонент.