getting exception: No bean named 'springSecurityFilterChain' is defined

后端 未结 5 1182
心在旅途
心在旅途 2020-11-28 10:28

I am learning spring security from reference material. release 3.1.2.RELEASE. As stated in that I have configured security:http tag like this

se

相关标签:
5条回答
  • 2020-11-28 10:46

    In case it helps anyone, I had renamed one of my packages but Eclipse doesn't auto-update your @ComponentScan paths, so make sure you change that too:

    @ComponentScan(basePackages = "com.package.spring")
    
    0 讨论(0)
  • 2020-11-28 10:47

    As of Spring Security 5.2.1-SNAPSHOT, this error occurred to me when I hadn't declared the <http/> element in security XML configuration.

    I was trying a sample and I had configuration like

        <b:beans xmlns="http://www.springframework.org/schema/security" xmlns:b="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/security https://www.springframework.org/schema/security/spring-security.xsd">
    
        <user-service>
            <user name="user" password="{noop}password" authorities="ROLE_USER" />
        </user-service>
    </b:beans>
    

    I had to change it to add <http/> like below.

    <b:beans xmlns="http://www.springframework.org/schema/security" xmlns:b="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/security https://www.springframework.org/schema/security/spring-security.xsd">
    
        <http />
        <user-service>
            <user name="user" password="{noop}password" authorities="ROLE_USER" />
        </user-service>
    </b:beans>
    
    0 讨论(0)
  • 2020-11-28 10:56

    I just added the bean definition in applicationContext.xml as Spring asked:

    <bean id="springSecurityFilterChain" class="org.springframework.web.filter.DelegatingFilterProxy"/>
    
    0 讨论(0)
  • 2020-11-28 11:00

    I think that the reason of your problem can be in that your xml configuration file for spring security isn't loaded when you start your web app.

    To fix this you should specify all your XML config files in web.xml like that:

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-security.xml, /WEB-INF/applicationContext.xml</param-value>
    </context-param>
    

    If you have your config files in classpath (not WEB-INF folder or it's subfolders) then you can specify list of config files in such way;

    ...
    <param-value>
        classpath:applicationContext.xml,
        classpath:spitter-security.xml
    </param-value>
    ...
    

    And also you need to add special listener that will load your config files:

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    
    0 讨论(0)
  • 2020-11-28 11:08

    add this your web.xml

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/root-context.xml, /WEB-INF/spring-security.xml</param-value>
    </context-param>
    
    <!-- Creates the Spring Container shared by all Servlets and Filters -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
            <!-- filter declaration for Spring Security -->
    <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>
    
    0 讨论(0)
提交回复
热议问题