[SPRING] 봄 보안 - 특정 URL 패턴에서 캐시 제어를 제거하는 방법
SPRING봄 보안 - 특정 URL 패턴에서 캐시 제어를 제거하는 방법
캐싱에 대한 일부 URL 패턴을 필터링하려고합니다. 내가 시도한 것은 WebSecurityConfigurerAdapter 구현에 코드를 넣는 것이다.
@Override
protected void configure(HttpSecurity http) throws Exception {
initSecurityConfigService();
// For cache
http.headers().defaultsDisabled()
.cacheControl()
.and().frameOptions();
securityConfigService.configure(http,this);
}
그러나이 코드는 모든 웹 응용 프로그램에 적용됩니다. 이 URL을 특정 URL이나 Content-Type 같은 이미지에 어떻게 적용 할 수 있습니까?
RegexRequestMatcher를 사용하여 이미 시도했지만 작동하지 않습니다.
// For cache
http.requestMatcher(new RegexRequestMatcher("/page/", "GET"))
.headers().defaultsDisabled()
.cacheControl()
.and().frameOptions();
이 기사는 SpringSecurityResponseHeaders를 읽었지만이 경우에는 샘플이 없습니다.
감사.
추신 즉, 특정 URL 및 리소스에 대한 SpringSecurity 기본값을 제거하려고합니다.
해결법
-
==============================
1.여러 WebSecurityConfigurerAdapter를 갖는 것은 어떻습니까? 하나의 어댑터는 특정 URL에 대한 캐시 제어를 가질 수 있고 다른 어댑터는 해당 URL에 대해 캐시 제어를 사용할 수 없습니다.
여러 WebSecurityConfigurerAdapter를 갖는 것은 어떻습니까? 하나의 어댑터는 특정 URL에 대한 캐시 제어를 가질 수 있고 다른 어댑터는 해당 URL에 대해 캐시 제어를 사용할 수 없습니다.
-
==============================
2.필터로 해결했습니다. 아래는 AbstractAnnotationConfigDispatcherServletInitializer를 구현 한 부분입니다. onStartup 메서드 오버라이드 (override)입니다.
필터로 해결했습니다. 아래는 AbstractAnnotationConfigDispatcherServletInitializer를 구현 한 부분입니다. onStartup 메서드 오버라이드 (override)입니다.
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/*" :) }
내가 한 일은 UrlPatterns 매핑에서 image / *를 제거하는 것이다. 귀하의 답변에 감사드립니다!
from https://stackoverflow.com/questions/42638687/spring-security-how-to-remove-cache-control-in-certain-url-pattern by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] JBoss AS 7에서 @WebService 주석 스캐닝을 비활성화하는 방법은 무엇입니까? (0) | 2019.04.30 |
---|---|
[SPRING] 스프링 + 쿼츠가 트리거를 예약하거나 업데이트합니까? (0) | 2019.04.30 |
[SPRING] 동기화 된 메소드 또는 spring @transactional? (0) | 2019.04.30 |
[SPRING] Spring Rest-API - 403 금지 된 오류 응답 (0) | 2019.04.30 |
[SPRING] 봄 부팅 내 보낸 항아리가 작동하지 않음 (org.springframework.beans.factory.BeanCreationException : 'entityManagerFactory'라는 이름으로 빈 생성 오류) (0) | 2019.04.29 |