From d94d69b90a34b91962843581ad889f5dc6cdb5aa Mon Sep 17 00:00:00 2001 From: "aditya.chandel" <8075870+adityachandelgit@users.noreply.github.com> Date: Thu, 23 Oct 2025 00:41:45 -0600 Subject: [PATCH] Fix image caching --- .../booklore/config/security/ImageCacheConfig.java | 7 ++++--- .../booklore/config/security/SecurityConfig.java | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/config/security/ImageCacheConfig.java b/booklore-api/src/main/java/com/adityachandel/booklore/config/security/ImageCacheConfig.java index f694bda0..df7df83a 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/config/security/ImageCacheConfig.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/config/security/ImageCacheConfig.java @@ -4,20 +4,21 @@ import com.adityachandel.booklore.config.security.filter.ImageCachingFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; @Configuration public class ImageCacheConfig { @Bean - public FilterRegistrationBean imageCachingFilterRegistration(ImageCachingFilter filter) { + public FilterRegistrationBean imageCachingFilterRegistration() { FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); - registrationBean.setFilter(filter); + registrationBean.setFilter(new ImageCachingFilter()); registrationBean.addUrlPatterns( "/api/v1/media/book/*/cover", "/api/v1/media/book/*/thumbnail", "/api/v1/media/book/*/backup-cover" ); - registrationBean.setOrder(1); + registrationBean.setOrder(Ordered.LOWEST_PRECEDENCE); return registrationBean; } } diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/config/security/SecurityConfig.java b/booklore-api/src/main/java/com/adityachandel/booklore/config/security/SecurityConfig.java index f9d62c33..28b01621 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/config/security/SecurityConfig.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/config/security/SecurityConfig.java @@ -17,6 +17,7 @@ import org.springframework.security.config.annotation.authentication.builders.Au import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; @@ -120,6 +121,9 @@ public class SecurityConfig { .securityMatcher("/api/v1/media/**") .csrf(AbstractHttpConfigurer::disable) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .headers(headers -> headers + .cacheControl(HeadersConfigurer.CacheControlConfig::disable) + ) .authorizeHttpRequests(auth -> auth .anyRequest().permitAll() ) @@ -148,7 +152,6 @@ public class SecurityConfig { return http.build(); } - @Bean public AuthenticationManager authenticationManager(HttpSecurity http) throws Exception { return http.getSharedObject(AuthenticationManagerBuilder.class)