有没有人知道为什么当我尝试围绕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)")
任何帮助将不胜感激!
答案 0 :(得分:2)
我不确定可用的信息,但我猜你正在使用Spring AOP,它默认使用JDK动态代理,所以你遇到了代理不保留类型的常见问题原始类(ProviderManager)。然而,代理将实现接口AuthenticationManager。尝试使用此类型进行自动装配,看看它是否有效。或者您可以启用使用cglib而不是动态代理的类代理。如果您正在使用Spring AOP名称空间,则可以将 proxy-target-class 属性设置为true。