代码之家  ›  专栏  ›  技术社区  ›  Pablo Santa Cruz

使用springsecurity时是否需要过滤器?

  •  1
  • Pablo Santa Cruz  · 技术社区  · 6 年前

    我有一个使用springsecurity的基于spring的项目。这是我的配置bean:

    @Configuration
    @EnableWebSecurity
    public class WebSecurityConfig extends
            WebSecurityConfigurerAdapter {
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            // just default options are fine
        }
    }
    

    我的问题是:在 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>
    

    或者,如果我使用的是足够新的spring版本,它是否应该在没有它的情况下工作?

    我的应用服务器是Wildfly 10。

    2 回复  |  直到 6 年前
        1
  •  1
  •   M. Deinum    6 年前

    spring security通过应用一个servlet过滤器来实现安全性。所以是的,过滤器是强制性的。如中所述 reference guide ,只有在不执行独立应用程序或反应式web应用程序中的servlet安全性时才需要它。

    当您在Servlet3.0容器上时,可以使用SpringSecurity提供的支持类来更容易地注册过滤器。见 this section 参考指南。你可以使用 AbstractSecurityWebApplicationInitializer 为您注册过滤器。

    如果您使用的是旧的servlet容器,那么仍然可以使用 web.xml 做同样的事。不管是哪种方式 springSecurityFilterChain 是必需的。

        2
  •  1
  •   rieckpil    6 年前

    由于SpringSecurity4,现在可以使用基于Java的配置来实现安全性,因此 web.xml 已经过时了。