Spring Security требует, чтобы рядом с конфигурацией безопасности был зарегистрирован фильтр сервлета.
Добавьте следующее к вашему 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>
Это добавит фильтр и будет применяться ко всем запросам.
Однако, поскольку вы используете недавний контейнер сервлетов, я бы посоветовал отказаться от web.xml
и создать 2 java-класса для начальной загрузки. (См. Также здесь ).
Первая загрузка вашего приложения
public class MvcWebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
public Class<?>[] getServletConfigClasses() {
return new Class[] { WebConfig.class }; // or whatever it is called or return `null`
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { AppConfig.class };
}
}
Затем добавьте тот, который загружает / настраивает Spring Security filter
public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer { }
Теперь все настроено на Java, и вы можете обойтись без web.xml
.