Spring Security将自动“缓存崩溃”所有请求,which is by design。 然而,对于实际上不需要由Spring Security管理的图像,您可以在WebSecurityConfigurerAdapter中为特定的资源目录禁用它(在这种情况下,图像目录将位于../resources/static目录中)。
@Override
public void configure(WebSecurity webSecurity) {
webSecurity.ignoring().antMatchers(
"/images/**"
)
}
3条答案
按热度按时间bmp9r5qi1#
看一看Spring Security – Cache Control Headers,它解释了ResponseEntity对象的缓存,该对象可以用于以字节数组的形式返回图像。
This还展示了一种缓存图片的方法,具体来说,虽然帖子本身是2015年的,但有些部分仍然可以相关。
cedebl8k2#
实际上,
spring.thymeleaf.cache
属性与安全性无关,更多的是与性能有关。如果禁用Thymeleaf缓存,当需要解析模板时,模板将自动重新加载,这与服务器端模板的热交换有关。这在开发过程中非常有用,因为您可以立即看到对模板的更改。否则,您必须重新启动应用程序。
请参阅Developer tools的说明文件,了解其用途。
Spring 4.x版本中有几种方法可以通过版本控制实现静态资源缓存(缓存破坏机制)。假设您通过Spring将图像作为静态资源提供,您可能需要研究这些方法。
如果图像本身不需要保护,那么将它们作为静态资源提供,并像这样应用缓存就足够了。
h7wcgrx33#
Spring Security将自动“缓存崩溃”所有请求,which is by design。
然而,对于实际上不需要由Spring Security管理的图像,您可以在WebSecurityConfigurerAdapter中为特定的资源目录禁用它(在这种情况下,图像目录将位于../resources/static目录中)。
而Spring Boot way是要加上
只有在开发中需要热加载模板时,才需要关闭Thymeleaf缓存。
测试它与
这将在浏览器级别缓存它们。如果你需要在服务器级别缓存它们,你可以使用像nginx这样的反向代理。