如何配置Spring Security以使用自定义AuthenticationManager实现?

时间:2010-06-29 20:42:38

标签: java spring-security

我拥有的是:

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

据我所知,使用默认的AuthenticationManager实现。我需要覆盖它的方法authenticate。有没有办法提供我自己的AuthenticationManager实现?

1 个答案:

答案 0 :(得分: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>

然后,您的自定义身份验证提供程序可以扩展Spring Security的AbstractUserDetailsAuthenticationProvider,您可以在其中放置自定义身份验证代码。

public class CustomAuthenticationProviderImpl extends AbstractUserDetailsAuthenticationProvider {
    ...
}