我的spring xml配置中有这个声明:
<security:headers>
我相信这可以确保在所有回复中发送以下标题:
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
我不希望使用静态资源发送此标头。所以我尝试了这个:
<security:headers>
<security:header ref="cacheStaticsHeaders" />
</security:headers>
<bean id="cacheStaticsHeaders" class="org.springframework.security.web.header.writers.DelegatingRequestMatcherHeaderWriter">
<constructor-arg>
<bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
<constructor-arg value="/images/**"/>
</bean>
</constructor-arg>
<constructor-arg>
<bean class="org.springframework.security.web.header.writers.StaticHeadersWriter">
<constructor-arg name="headers">
<list>
<bean class="org.springframework.security.web.header.Header">
<constructor-arg name="headerName" value="cache-control"></constructor-arg>
<constructor-arg name="headerValues" value="max-age=31536000"/>
</bean>
<bean class="org.springframework.security.web.header.Header">
<constructor-arg name="headerName" value="Expires"></constructor-arg>
<constructor-arg name="headerValues" value="31536000"/>
</bean>
</list>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
但是,现在我看到两个静态资源标头:
Cache-Control:max-age=31536000 cache-control: public
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
我该如何解决这个问题?我首先问了这个问题here,但没有得到答复。