我拥有的是:
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="securityService"/>
</authentication-manager>
据我所知,使用默认的AuthenticationManager实现。我需要覆盖它的方法authenticate
。有没有办法提供我自己的AuthenticationManager实现?
答案 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 {
...
}