我有一个基于Spring的Web应用程序(不是Spring boot),并且正在尝试启用Spring Security。
我可以通过扩展AbstractSecurityWebApplicationInitializer
来启用它,并且效果很好。但是我想使用@EnableWebSecurity
来做,而不扩展AbstractSecurityWebApplicationInitializer
。但是仅此注释不能启用它。有没有办法做到这一点,或者仅此注释解决方案仅适用于Spring Boot?
谢谢。
答案 0 :(得分:1)
在非引导环境中,您可能正在使用调度程序servlet初始化程序类,例如,扩展AbstractAnnotationConfigDispatcherServletInitializer
。您可以这样注册安全过滤器链:
private static void initSecurityFilter(ServletContext servletContext) {
FilterRegistration.Dynamic securityFilter = servletContext.addFilter("springSecurityFilterChain",
DelegatingFilterProxy.class);
final EnumSet<DispatcherType> es = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD);
securityFilter.addMappingForUrlPatterns(es, true, "/*");
}
并从onStartup
调用它。