从配置XML为Spring Security设置自定义缓存控制头?

从配置XML为Spring Security设置自定义缓存控制头?,spring,spring-security,Spring,Spring Security,我正试图通过Spring安全配置XML将缓存控制响应头配置为自定义值。不幸的是,我似乎只能从XML配置中禁用缓存控制头: 不幸的是,尽管该类实际上是最初调用的,但由于缓存控制响应头似乎仍被设置为默认值,因此该配置似乎实际上被XML覆盖了: 关于如何指定与XML文件本身类似的内容,最好能够匹配特定的模式(例如*.js),有什么想法吗 谢谢 我相信你想要的答案已经在这里的问题中描述过了: 通过这样做: <security:http> [intercept-url, etc omitt

我正试图通过Spring安全配置XML将
缓存控制
响应头配置为自定义值。不幸的是,我似乎只能从XML配置中禁用
缓存控制
头:

不幸的是,尽管该类实际上是最初调用的,但由于
缓存控制
响应头似乎仍被设置为默认值,因此该配置似乎实际上被XML覆盖了:

关于如何指定与XML文件本身类似的内容,最好能够匹配特定的模式(例如*.js),有什么想法吗


谢谢

我相信你想要的答案已经在这里的问题中描述过了:

通过这样做:

<security:http>
[intercept-url, etc omitted...]
        <security:headers>
            <!-- selectively applied to dynamic pages only via pattern matching,  -->
            <security:header ref="noCacheHeaders"/>
        </security:headers>
    </security:http>    

<bean id="noCacheHeaders" class="org.springframework.security.web.header.writers.DelegatingRequestMatcherHeaderWriter">
        <constructor-arg>
            <bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
                <constructor-arg value="/index.html"/>
            </bean>
        </constructor-arg>
        <constructor-arg>
                <bean class="org.springframework.security.web.header.writers.CacheControlHeadersWriter"/>
        </constructor-arg>
    </bean>

[截取url等省略…]

我相信你想要的答案已经在这里的问题中描述过了:

通过这样做:

<security:http>
[intercept-url, etc omitted...]
        <security:headers>
            <!-- selectively applied to dynamic pages only via pattern matching,  -->
            <security:header ref="noCacheHeaders"/>
        </security:headers>
    </security:http>    

<bean id="noCacheHeaders" class="org.springframework.security.web.header.writers.DelegatingRequestMatcherHeaderWriter">
        <constructor-arg>
            <bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
                <constructor-arg value="/index.html"/>
            </bean>
        </constructor-arg>
        <constructor-arg>
                <bean class="org.springframework.security.web.header.writers.CacheControlHeadersWriter"/>
        </constructor-arg>
    </bean>

[截取url等省略…]

让我试试——不过,让我问一下,有没有一种方法可以选择性地应用标题?我的主要目标是只修改JS文件的默认缓存控制。你是说某些ANT模式?是的,您至少可以在Java配置中这样做。对于XML,它更复杂,但也有可能。是的,ANT模式……至于
XML元素,我仍然无法在
下配置它?列出的唯一属性已禁用:能否提供链接?我在那里发布的缓存控制链接实际上是作为headers标记的子元素列出的,如下所示:--我遗漏了什么吗?让我试试--但是,让我问一下,有没有一种方法可以选择性地应用头?我的主要目标是只修改JS文件的默认缓存控制。你是说某些ANT模式?是的,您至少可以在Java配置中这样做。对于XML,它更复杂,但也有可能。是的,ANT模式……至于
XML元素,我仍然无法在
下配置它?列出的唯一属性已禁用:能否提供链接?我在那里发布的缓存控制链接实际上是作为headers标记的子元素列出的,如下所示:--我缺少什么吗?
<security:http>
[intercept-url, etc omitted...]
        <security:headers>
            <!-- selectively applied to dynamic pages only via pattern matching,  -->
            <security:header ref="noCacheHeaders"/>
        </security:headers>
    </security:http>    

<bean id="noCacheHeaders" class="org.springframework.security.web.header.writers.DelegatingRequestMatcherHeaderWriter">
        <constructor-arg>
            <bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
                <constructor-arg value="/index.html"/>
            </bean>
        </constructor-arg>
        <constructor-arg>
                <bean class="org.springframework.security.web.header.writers.CacheControlHeadersWriter"/>
        </constructor-arg>
    </bean>