Java Spring安全问题:没有名为'的bean;springSecurityFilterChain';

Java Spring安全问题:没有名为'的bean;springSecurityFilterChain';,java,spring,spring-mvc,spring-security,tomcat7,Java,Spring,Spring Mvc,Spring Security,Tomcat7,我对spring security有很大的问题 情况: WEB.XML: <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class&g

我对spring security有很大的问题

情况:

WEB.XML:

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>
            org.springframework.web.filter.DelegatingFilterProxy
        </filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/security-config.xml</param-value>
    </context-param>

   <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>

springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
上下文配置位置
/WEB-INF/config/security-config.xml
org.springframework.web.context.ContextLoaderListener
security-config.xml:

<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns="http://www.springframework.org/schema/security"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">

    <http auto-config="true">
        <intercept-url pattern="/**" access="ROLE_USER" />
    </http>

    <authentication-manager>
        <authentication-provider>
            <user-service>
                <user name="admin" password="password" authorities="ROLE_USER" />
            </user-service>
        </authentication-provider>
    </authentication-manager>
</beans:beans>

错误:

严重:启动筛选器springSecurityFilterChain时出现异常 org.springframework.beans.factory.noSuchBean定义异常:否 名为“springSecurityFilterChain”的bean在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:570) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1114) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:279) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) 在 org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1121) 在 org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:323) 在 org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235) 在 org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:194) 在 org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105) 在 org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4854) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5546) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 在java.util.concurrent.FutureTask.run(FutureTask.java:262)中 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 运行(Thread.java:745)

my pom.xml中的依赖项:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.2.6.RELEASE</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>4.2.0.Final</version>
</dependency>
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.4.1</version>
</dependency>
<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-oxm</artifactId>
    <version>3.2.6.RELEASE</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.36</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>4.1.9.Final</version>
</dependency>
<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>


<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
</dependency>


<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>

朱尼特
朱尼特
3.8.1
测验
org.springframework
SpringWebMVC
3.2.6.1发布
javax.servlet
jstl
1.2
javax.servlet
servlet api
2.5
假如
org.hibernate
休眠验证器
4.2.0.4最终版本
org.codehaus.jackson
杰克逊地图绘制者
1.4.1
com.thoughtworks.xstream
xstream
1.3.1
org.springframework
弹簧oxm
3.2.6.1发布
mysql
mysql连接器java
5.1.36
org.hibernate
休眠实体管理器
4.1.9.最终版本
javax.transaction
jta
1.1
org.springframework
SpringJDBC
3.2.0.1发布
org.springframework
春季甲虫
3.2.0.1发布
org.springframework.security
spring安全网
3.2.0.1发布
org.springframework.security
spring安全配置
3.2.0.1发布
org.springframework.security
spring安全标记库
3.2.0.1发布
公用记录
公用记录
1.1.1
org.springframework.security
spring安全内核
3.2.0.1发布

我假设您拥有以下库:

spring-security-config-3.1.3.RELEASE.jar

spring-security-core-3.1.3.RELEASE.jar

spring-security-taglibs-3.1.3.RELEASE.jar

spring-security-web-3.1.3.RELEASE.jar

但可能应用程序上下文没有加载安全上下文

类路径:spring/conf/security-context.xml


Joe

确定-类org.springframework.web.filter.DelegatingFilterProxy与maven依赖项一起拉入:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>3.2.0.RELEASE</version>
</dependency>

org.springframework
弹簧网
3.2.0.1发布

试试看。

我在配置一个项目时遇到了这个问题。我得到这个问题的原因是我没有在上下文参数中提到我的应用程序上下文/根上下文xml文件。我完全不记得对这一点的确切解释,因为它是在1年前,但这样做解决了我的问题

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/application-context.xml
        /WEB-INF/config/security.xml</param-value>
    </context-param>

上下文配置位置
/WEB-INF/config/application-context.xml
/WEB-INF/config/security.xml

查看

显示您的pom.xml.your标签?这只是一个打字错误吗?@AmitParashar仔细检查,
不是一个打字错误。看起来可能是这样,但在我的web.xml上它是正确的格式在类删除它之前有一个空格@SarfarazKhan这是我问题中的一个输入错误,我的web.xml文件很好。转到eclipse包浏览器视图,验证spring-web-xxxx.jar是否在Maven Dependencies下。是的。在您的日志中,即使您处于信息级别,也应该有一些与spring发布级别和bean创建相关的消息。让我们看看日志的那部分。