Я использую spring-security-kerberos для аутентификации удаленных пользователей - это хорошо работает. Проблема, которая у меня есть, заключается в том, что иногда пользователи не имеют билет на кеберокс на месте, и мне нужно использовать другую форму аутентификации. Для этой цели я написал собственный поставщик аутентификации (myCusomAuthenticationProvider
). Этот пользовательский поставщик должен попросить пользователя для аутентификации BASIC и использовать несколько серверов LDAP для аутентификации пользователя на основе имени пользователя и пароля.Комбинируйте собственный фильтр проверки подлинности с помощью spring-security-kerberos
Проблема, которую я вижу, заключается в том, что мой пользовательский менеджер аутентификации всегда получает KerberosServiceRequestToken в качестве токена аутентификации, и мне не удается получить UsernamePasswordAuthenticationToken. Как заставить сервер возвращать браузеру «Переговоры» и «Основные» методы, а мой собственный провайдер обрабатывает базовую аутентификацию?
Я нашел способ сделать это с некоторыми изменениями кода Spring-security-kerberos, но я пытаюсь найти лучший способ сделать это.
web.xml: http://pastebin.com/embed.php?i=ZidnBMwZ
корневой контекст-с krb.xml: http://pastebin.com/c8vfUZfV
Спасибо за информацию! – nambar
@nambar ответ не ясен или не так? – 0x5a4d