Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Security ProviderManager上的AspectJ建议在启动时引发异常_Spring_Spring Security_Aspectj - Fatal编程技术网

Spring Security ProviderManager上的AspectJ建议在启动时引发异常

Spring Security ProviderManager上的AspectJ建议在启动时引发异常,spring,spring-security,aspectj,Spring,Spring Security,Aspectj,有人知道为什么当我试图围绕Spring Security(v3.0)ProviderManager的“doAuthentication”方法创建建议时,我的应用程序在启动时抛出异常吗 我正在将spring authentication manager bean的一个实例自动连接到一个控制器中,当尝试自动连接时,我的应用程序无法部署 下面是我的安全上下文xml的样子 ...<authentication-manager alias="authenticationManager"> ..

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

我正在将spring authentication manager bean的一个实例自动连接到一个控制器中,当尝试自动连接时,我的应用程序无法部署

下面是我的安全上下文xml的样子

...<authentication-manager alias="authenticationManager"> ...
以下是我的建议声明:

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

任何帮助都将不胜感激

从可用信息来看,我不确定,但我猜您使用的是Spring AOP,它默认使用JDK动态代理,因此您遇到了一个常见的问题,即代理不保留原始类的类型(ProviderManager)。但是,代理将实现接口AuthenticationManager。尝试使用此类型进行自动布线,看看它是否有效。或者您可以启用使用cglib而不是动态代理的类代理。如果您使用的是Spring AOP名称空间,那么可以将代理目标类属性设置为true。

好问题!!!嗯。。。。尝试使用ProviderManager自动连接上述控制器时出现异常。。。但是,感谢你的帖子。。。我知道发生了什么。。。我正在尝试自动连接该字段,它标记为private。。。嗯,这让我有更多的阅读,我对面向方面的游戏有点了解。。。谢谢你的帖子。事实上。。。这很奇怪,因为我能够自动连接它,直到我在ProvderManager的doAuthentication方法上创建一个方面。。。以下是我的Tomcat日志中的异常..org.springframework.beans.factory.BeanCreationException:创建名为“userActionController”的bean时出错:自动连线依赖项的注入失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动连接字段:private org.springframework.security.authentication.ProviderManager.com.redogre.epicgarbage.web.controllers.UserActionController.authenticationManager;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项类型为[org.springframework.security.authentication.ProviderManager]的匹配bean:应至少有1个bean符合此依赖项的autowire候选项的条件。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}您是如何应用建议的?您使用的是AspectJ编译器吗?谢谢,我想我错过了spring文档中的这一部分。我感谢你的帮助。
@After("execution(* org.springframework.security.authentication.ProviderManager.doAuthentication(..)) && args(authentication)")