关于Spring Security ProviderManager的AspectJ建议在启动时抛出异常

时间:2010-08-08 17:58:50

标签: spring spring-security aspectj

有没有人知道为什么当我尝试围绕Spring Security(v3.0)ProviderManager的“doAuthentication”方法创建建议时,我的应用程序会在启动时抛出异常?

我将spring authentication-manager bean的实例自动装入控制器,当尝试自动装配时,我的应用程序无法部署。

这是我的安全上下文xml的样子......

...<authentication-manager alias="authenticationManager"> ...

这是我的控制器的相关部分......

@Autowired
private ProviderManager authenticationManager;

这是我的建议声明:

@After("execution(* org.springframework.security.authentication.ProviderManager.doAuthentication(..)) && args(authentication)")

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

我不确定可用的信息,但我猜你正在使用Spring AOP,它默认使用JDK动态代理,所以你遇到了代理不保留类型的常见问题原始类(ProviderManager)。然而,代理将实现接口AuthenticationManager。尝试使用此类型进行自动装配,看看它是否有效。或者您可以启用使用cglib而不是动态代理的类代理。如果您正在使用Spring AOP名称空间,则可以将 proxy-target-class 属性设置为true。