2017-11-08 3 views

답변

0

Spring Security – Cache Control Headers에서 살펴보면, 바이트 배열 형식으로 이미지를 반환하는 데 사용할 수있는 ResponseEntity 개체에 대한 캐싱에 대해 설명합니다.

This도 이미지 자체를 캐싱하는 방법을 보여 주지만 게시물 자체는 2015 년이긴하지만 일부는 여전히 관련성이 있습니다.

0

실제로 spring.thymeleaf.cache 속성은 보안과는 관계가 없지만 성능이 더 좋습니다. Thymeleaf 캐시를 비활성화하면 템플릿을 파싱해야 할 때 자동으로 다시로드되며 서버 측 템플리트의 핫 스와핑과 관련이 있습니다.

이것은 개발 중에 템플릿 변경 사항을 즉시 볼 수 있기 때문에 유용합니다. 그렇지 않으면 응용 프로그램을 다시 시작해야합니다.

자세한 내용은 Developer tools의 설명서를 참조하십시오.

버전 4.x의 스프링 어딘가에는 버전 관리 (캐시 분할 메커니즘)를 사용하여 static resource caching을 구현하는 몇 가지 방법이 있습니다. 스프링을 통해 이미지를 정적 리소스로 제공한다고 가정하면 이러한 이미지를 조사 할 수 있습니다.

이미지 자체를 보호 할 필요가없는 경우 정적 리소스로 사용하여 이미지를 캐싱해야합니다.

0

스프링 시큐리티는 자동으로 모든 요청을 "캐시 바스트 (cache bust)"로 처리합니다. which is by design.

스프링 보안으로 관리 할 필요가없는 이미지의 경우 WebSecurityConfigurerAdapter의 특정 리소스 디렉토리에 대해 이미지를 비활성화 할 수 있습니다 (이 경우 images 디렉토리는 ../resources/static 디렉토리에 있습니다).).

@Override 
public void configure(WebSecurity webSecurity) { 
    webSecurity.ignoring().antMatchers(
       "/images/**" 
    ) 
} 

그리고 Spring Boot way 추가하는 것입니다

spring.resources.cache-period=your value here in seconds 

에만 템플릿의 핫 다시로드를 수행 할 때, 개발에 Thymeleaf 캐시를 해제 할 것입니다.

테스트는 브라우저 수준에서 캐시됩니다

curl -X GET -I https://your-site/images/foo.png 

이 작동합니다. 서버 수준에서 캐시해야한다면 nginx와 같은 역방향 프록시를 사용할 수 있습니다.