Я написал простое 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 или что-то еще.
Вопрос в том, как я могу очистить этот кеш (без убийства всего приложения), или нет таких кеш-статических переменных, как я могу заставить его работать?
Спасибо!