Spring Security,Spring Boot和ContextLoaderListener

时间:2017-12-20 10:29:56

标签: spring-mvc spring-boot spring-security

当我们使用web.xml添加spring securityfilter时,以下是声明

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

我们也必须

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

我的问题是: 为什么我们需要定义ContextLoaderListener(我知道它会创建ROOT application contextDispatcherServlet会创建child application context) 当我们宣布springSecurityFilterChain时?

我的理解是:

1)在幕后,DelegatingFilterProxy将委托给名为“springSecurityFilterChain”的bean(值filter-name属性)

2)这个bean(springSecurityFilterChain)和(FilterChainProxyBean最终将请求路由到spring security中的不同过滤器)是否会被创建   由于ROOT application Context创建了ContextLoaderListener,因此创建了ROOT application context?因此我们需要ContextLoaderListener

如果是这种情况,弹簧靴如何处理弹簧安全? 因为Spring引导只需要在pom.xml中添加spring security依赖项,所以一切正常如下 -

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
</dependency>

在类路径中添加DispatcherServlet后,spring boot会创建spring-boot-starter-web。 那么,如果没有ContextLoaderListener,春季安全如何运作?

0 个答案:

没有答案