2010-06-29 2 views
3

Что у меня есть:Как настроить Spring Security для использования пользовательской реализации AuthenticationManager?

<authentication-manager alias="authenticationManager"> 
    <authentication-provider user-service-ref="securityService"/> 
</authentication-manager> 

Как я понимаю, используется реализация AuthenticationManager по умолчанию. Мне нужно переопределить его метод authenticate. Есть ли способ предоставить мою собственную реализацию AuthenticationManager?

ответ

8

Вы должны указать customAuthenticationProvider первых, как это: -

<bean id="customAuthenticationProvider" class="your.project.CustomAuthenticationProviderImpl"> 
    <property name="userDetailsService" ref="userDetailsService" /> 
    ... 
</bean> 

<security:authentication-manager> 
    <security:authentication-provider ref="customAuthenticationProvider" /> 
</security:authentication-manager> 

Затем пользовательский поставщик аутентификации может расширяет AbstractUserDetailsAuthenticationProvider Spring Security, где вы можете разместить свой собственный код аутентификации.

public class CustomAuthenticationProviderImpl extends AbstractUserDetailsAuthenticationProvider { 
    ... 
} 
+0

, в котором все (минимальные) методы должны быть записаны в 'CustomAuthenticationProviderImpl'? – instinct

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