Estoy tratando de filtrar algún patrón de URL para el almacenamiento en caché. Lo que he intentado es poner algunos códigos en la implementación de WebSecurityConfigurerAdapter .
@Override protected void configure(HttpSecurity http) throws Exception { initSecurityConfigService(); // For cache http.headers().defaultsDisabled() .cacheControl() .and().frameOptions(); securityConfigService.configure(http,this); } Sin embargo, este código afectará a toda la aplicación web. ¿Cómo puedo aplicar esto a cierta URL o Content-Type como images ?
Ya probé con RegexRequestMatcher , pero no me funciona.
// For cache http.requestMatcher(new RegexRequestMatcher("/page/", "GET")) .headers().defaultsDisabled() .cacheControl() .and().frameOptions();Leí este artículo: SpringSecurityResponseHeaders , pero no hay muestra para este caso.
Gracias.
PD En resumen, quiero eliminar SpringSecurity defaults para ciertas URL y recursos.
¿Qué pasa con tener múltiples WebSecurityConfigurerAdapters? Un adaptador podría tener controles de caché para ciertas URL y otro no tendrá habilitado el control de caché para esas URL.
Resolví esto con Filter . A continuación se muestra parte de mi implementación de AbstractAnnotationConfigDispatcherServletInitializer . En la anulación del método onStartup .
FilterRegistration.Dynamic springSecurityFilterChain = servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy()); if(springSecurityFilterChain != null){ springSecurityFilterChain.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/render/*", "/service/*"); // I removed pattern url "/image/*" :) } Lo que he hecho es eliminar /image/* de MappingUrlPatterns. ¡Gracias por tus respuestas!