2013-04-20 2 views
1

Я написал простое Java-приложение, которое использует GSSAPI для подключения к Active Directory (Kerberos SSO).JAVA & GSSAPI: Очистка кеша

У меня есть 2 царства и KDCs: x и y.

Если я запустил инструмент с помощью realm/KDC x - инструмент будет работать.

Если я запустил инструмент с помощью realm/KDC y - инструмент тоже будет работать.

Если я запустил инструмент для выполнения двух аутентификаций с помощью realm/KDC x (логин, выход из системы, вход в систему, выход из системы) - работает.

Тот же результат для realm/KDC y.

Проблема заключается в том, когда я пытаюсь переключаться между двумя царствами/KDC,: Логин х, выход из системы х, у Логин, выход из системы у - исключение отбрасывается при попытке входа на второй:

GSSException: Уровень механизма: изменение потока сообщений (41))

Просто для пояснения. Проблема возникает только в том случае, если я использую 2 разных режима/KDC (каждый раз каждый раз, конечно), без перезапуска всего приложения между этими два.

Я думаю, что java/gssapi каким-то образом кэширует царство или билет krb или что-то еще.

Вопрос в том, как я могу очистить этот кеш (без убийства всего приложения), или нет таких кеш-статических переменных, как я могу заставить его работать?

Спасибо!

ответ

0

Возможно, ваша проблема связана с неисправностью файла krb5.conf. См. Здесь: GSSException: Message stream modified (41)

Опубликовать весь свой штраф krb5.conf и доступ к SPN.

Смежные вопросы