我尝试了以下方法:
<bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
<property name="providers">
<list>
<ref local="myAuthnProvider"/>
</list>
</property>
<property name="authenticationEventPublisher">
<bean class="myPublisher/>
</property>
</bean>
<security:authentication-manager>
<security:authentication-provider ref="authenticationManager" />
</security:authentication-manager>
Run Code Online (Sandbox Code Playgroud)
但我在启动时遇到异常.我也尝试了构造函数标记,结果相同:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authenticationManager': Could not resolve matching constructor (hint: secify index/type/name arguments for simple parameters to avoid type ambiguities)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:250)
Run Code Online (Sandbox Code Playgroud)
我正在使用spring 3.1.1.
任何想法为什么抛出这个错误?或者有关如何捕获身份验证事件的其他建议?谢谢.
如果您想要做的只是获得有关身份验证事件的通知,那么您不必自定义AuthenticationManager.它足以实现ApplicationListener如下所示的接口,并将这种类型的bean放在配置安全性的相同spring环境中.
public class AuthenticationEventListener
implements ApplicationListener<AbstractAuthenticationEvent> {
@Override
public void onApplicationEvent(AbstractAuthenticationEvent event) {
// process the event
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3246 次 |
| 最近记录: |