【问题标题】:Setting custom cache-control header from configuration XML for Spring Security?从配置 XML 为 Spring Security 设置自定义缓存控制标头?
【发布时间】:2018-05-05 07:00:23
【问题描述】:

我正在尝试通过我的 Spring Security 配置 XML 将 cache-control 响应标头配置为自定义值。不幸的是,我似乎只能禁用 XML 配置 as per the documentation 中的 cache-control 标头:

<http>
    <headers defaults-disable="true">
        <cache-control />
    </headers>
</http>

似乎是这样,我尝试创建一个自定义 WebSecurityConfigurerAdapter:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        System.out.println("******* SETTING CUSTOM CACHE-CONTROL....");
        StaticHeadersWriter writer = new StaticHeadersWriter("Cache-Control", "2592000");
        RequestMatcher resourcesMatcher = new AntPathRequestMatcher("/**/*");
        HeaderWriter resourcesHeaderWriter = new DelegatingRequestMatcherHeaderWriter(resourcesMatcher, writer);
        http.headers().cacheControl().disable().addHeaderWriter(resourcesHeaderWriter);
        http.headers().disable();
    }
}

不幸的是,尽管实际上最初调用了该类,但似乎配置实际上已被 XML 覆盖,因为 cache-control 响应标头似乎仍设置为默认值:

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

谢谢!

【问题讨论】:

标签: spring spring-security


【解决方案1】:

我相信您想要的答案已在此处的问题中描述:

disable caching for specific url in spring security

通过这样做:

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

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 2019-01-14
    • 2023-04-01
    • 2017-06-15
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2018-06-19
    相关资源
    最近更新 更多