1

I have this declaration in my spring xml configuration:

<security:headers>

I believe this ensures that the following header is sent with all responses:

Cache-Control:no-cache, no-store, max-age=0, must-revalidate

I don't want this header to be sent with static resources. So I tried this:

<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>

However,now I see two headers for static resources:

Cache-Control:max-age=31536000 cache-control: public 
Cache-Control:no-cache, no-store, max-age=0, must-revalidate

How do I fix this? I first asked this question here but didn't get a response.

Prashant Saraswat
  • 838
  • 1
  • 8
  • 20

0 Answers0