如何使用spring java config将X-Frame-Options响应头设置为允许来自值?

问题描述 投票:7回答:2

如何使用spring java config设置值为allow-from的X-Frame-Options响应头?

http.headers().disable()
    .addHeaderWriter(new XFrameOptionsHeaderWriter(
      new WhiteListedAllowFromStrategy(
        Arrays.asList("https://example1.com", "https://example2.com"))));

在Http Response标题中,我得到:

X-Frame-Options:“ALLOW-FROM DENY”。

为什么我的起源不在标题值中列出?

spring-security http-headers spring-java-config x-frame-options
2个回答
4
投票

我最后静态添加我的标题如下:

http
    .headers().frameOptions().disable()
    .addHeaderWriter(new StaticHeadersWriter("X-FRAME-OPTIONS", "ALLOW-FROM example1.com"));

0
投票

我一直在找同样的,没有找到答案。无论我如何配置它,标头总是不正确。

我的解决方法是使用Spring框架doc中的委托头编写器

多亏了我构建了一个逻辑来始终设置SAMEORIGIN,不包括一些白名单:

new DelegatingRequestMatcherHeaderWriter(
            new NegatedRequestMatcher(
                    new OrRequestMatcher(
                            whiteLists
                    )
            ),
            new XFrameOptionsHeaderWriter(XFrameOptionsMode.SAMEORIGIN);

背后的逻辑:如果白名单中有任何匹配则不添加标题,否则添加标题为SAMEORIGIN值。

我认为值得考虑,因为AFAIK并非所有浏览器都支持ALLOW-FROM。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.