禁用spring security 4.2中的静态资源缓存

时间:2016-12-20 18:12:22

标签: spring-security

我的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,但没有得到答复。

0 个答案:

没有答案