Как получить настраиваемый поставщик проверки подлинности Spring 2 для принятия UsernamePasswordAuthenticationToken?

В Spring 2 я создал собственного провайдера аутентификации, потому что я не могу извлечь пароль из базы данных, как предпочитает Spring, потому что на пути есть черный ящик. Когда я пытаюсь пройти аутентификацию, я получаю:

Не найден поставщик проверки подлинности для org.springframework.security.providers.UsernamePasswordAuthenticationToken

Я поместил этот bean в мой security.xml:

<bean id="imsAuthProvider" class="com.terrapages.mokbeecds.ims.IMSAuthenticationProvider">
    <security:custom-authentication-provider />
</bean>

Что, я считаю, все, что мне нужно. Он должен просто взять имя пользователя и пароль из формы и передать их моему провайдеру, чтобы он справился с ними так, как считает нужным. У меня также есть это в моем customAuthenticationProvider:

public boolean supports(@SuppressWarnings("rawtypes") Class authentication) {
    return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication));
}

Который, насколько я понимаю, проверяется перед передачей токена аутентификации провайдеру нестандартной аутентификации. Если он возвращает false, то Spring проверяет следующий поставщик аутентификации.

Главный authenticate(Authentication) метод может только бросить BadCredentialsException или AuthenticationServiceException, что, как я понимаю, не должно вызывать вывод выше.

Информацию о Spring 2 немного сложно найти, так как Spring 3 сейчас везде.

Как мне заставить моего провайдера принять UsernamePasswordAuthenticationToken?

1 ответ

Spring Security 2 также хорошо документирован: http://static.springsource.org/spring-security/site/docs/2.0.x/reference/html/springsecurity.html Пожалуйста, используйте следующий метод поддержки:

public boolean supports(Class authentication) {
    return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication));
}

отредактированный

Предложения:

  1. Удалите вашего провайдера - аутентификация должна работать. Если нет - исправьте проблему.
  2. Отладка аутентификации и поддержка метода и посмотреть, в чем проблема
Другие вопросы по тегам