zoukankan      html  css  js  c++  java
  • Spring Security使用报错 No bean named 'springSecurityFilterChain' is defined

    今天配置spring security时,运行报出No bean named 'springSecurityFilterChain' is defined错误,报错信息如下

    严重: Exception starting filter springSecurityFilterChain
    org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined

    根据错误信息可以看出是服务器启动springSecurityFilterChain没有找到"springSecurityFilterChain"bean。

    因为spring security是使用java配置的,因此我在spring mvc的xml配置文件中添加了对spring security配置类的扫描,但是运行时却报错没有发现该bean

    因此通过网络查阅资料后发现,因为我们在web.xml中注册spring mvc 的dispatcherServlet时,是使用<init-param>加载的配置文件,而通过<init-param>初始化的对象

    只能在servlet中使用,但是我们这里的springSercurityFilterChain bean是需要在springSercurity的Filter中使用,因此我们需要在<context-param>中初始化,<context-param>中初始化的对象全局有效

    因此将springSercurity的配置类放在applicationContext.xml配置文件中注册

    具体操作如下:

    在web.xml添加如下

    <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:applicationContext.xml</param-value>
      </context-param>

    在applicationContext.xml文件中添加

    <bean class="config.SecurityConfig"></bean>

    使用java配置spring security时,可以通过实现AbstractSecurityWebApplicationInitializer类来创建该Filter,只需要实现就行

    public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {
    }

    实现该抽象类的效果相当于在web.xml中配置springSecurityFilterChain

    <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>
  • 相关阅读:
    typeof与GetType
    可拖曳
    手机浏览器JS识别
    固态硬盘寿命实测让你直观SSD寿命!--转
    No Dialect mapping for JDBC type: -9
    Hql查询结果动态组装 List(map),List(bean),List(list),List(set)等格式(转)
    java.util.NoSuchElementException解决办法
    MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory
    win7激活
    java trim
  • 原文地址:https://www.cnblogs.com/yyxxn/p/9010826.html
Copyright © 2011-2022 走看看