: 나는이 정보를 얻을 않았다 어디 기억할 수Thymeleaf 캐시 및 보안 내 웹 응용 프로그램 (봄 부팅 + 봄 보안 + Thymeleaf) 보안을 위해 I 장애인 캐싱에서
spring.thymeleaf.cache=false
, 또는 그것이 사실이라면. 웹 사이트에 많은 이미지가 있으며이를 캐싱하고 싶습니다. 무엇을 추천하나요?
: 나는이 정보를 얻을 않았다 어디 기억할 수Thymeleaf 캐시 및 보안 내 웹 응용 프로그램 (봄 부팅 + 봄 보안 + Thymeleaf) 보안을 위해 I 장애인 캐싱에서
spring.thymeleaf.cache=false
, 또는 그것이 사실이라면. 웹 사이트에 많은 이미지가 있으며이를 캐싱하고 싶습니다. 무엇을 추천하나요?
Spring Security – Cache Control Headers에서 살펴보면, 바이트 배열 형식으로 이미지를 반환하는 데 사용할 수있는 ResponseEntity 개체에 대한 캐싱에 대해 설명합니다.
This도 이미지 자체를 캐싱하는 방법을 보여 주지만 게시물 자체는 2015 년이긴하지만 일부는 여전히 관련성이 있습니다.
실제로 spring.thymeleaf.cache
속성은 보안과는 관계가 없지만 성능이 더 좋습니다. Thymeleaf 캐시를 비활성화하면 템플릿을 파싱해야 할 때 자동으로 다시로드되며 서버 측 템플리트의 핫 스와핑과 관련이 있습니다.
이것은 개발 중에 템플릿 변경 사항을 즉시 볼 수 있기 때문에 유용합니다. 그렇지 않으면 응용 프로그램을 다시 시작해야합니다.
자세한 내용은 Developer tools의 설명서를 참조하십시오.
버전 4.x의 스프링 어딘가에는 버전 관리 (캐시 분할 메커니즘)를 사용하여 static resource caching을 구현하는 몇 가지 방법이 있습니다. 스프링을 통해 이미지를 정적 리소스로 제공한다고 가정하면 이러한 이미지를 조사 할 수 있습니다.
이미지 자체를 보호 할 필요가없는 경우 정적 리소스로 사용하여 이미지를 캐싱해야합니다.
스프링 시큐리티는 자동으로 모든 요청을 "캐시 바스트 (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와 같은 역방향 프록시를 사용할 수 있습니다.