0

有谁知道为什么当我尝试围绕 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)")

任何帮助将不胜感激!

4

1 回答 1

2

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

于 2010-08-09T00:48:10.340 回答