【发布时间】:2020-01-29 00:57:09
【问题描述】:
将 Spring Security 添加到使用 Spring 的新 WebApplicationInitializer 接口而不是 web.xml 文件的 Web 应用程序的推荐方法是什么?我正在寻找相当于:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
更新
提供的答案是合理的,但他们都假设我有一个 servletContext 实例。我查看了WebApplicationInitializers 的层次结构,除非我选择重写 Spring 的初始化方法之一,否则我看不到任何对 servlet 上下文的访问。 AbstractDispatcherServletInitializer.registerServletFilter 似乎是明智的选择,但它并不默认为 URL 模式映射,如果有更好的方法,我不想更改所有内容的过滤器注册。
【问题讨论】:
-
当您创建实现 WebApplicationInitializer 的类时,您将使用之前在 web.xml 中的内容覆盖“void onStartup(ServletContext servletContext)”。 ServletContext 将被传递给您的 WebApplicationInitializer 实现。
标签: spring-mvc spring-security servlet-3.0