【问题标题】:How to give request matcher in Spring Security for x frame options?如何在 Spring Security 中为 x 框架选项提供请求匹配器?
【发布时间】:2023-03-19 23:45:02
【问题描述】:

我已启用 Spring Security 标头。

我的代码是这样的:

<security:headers disabled="false">
       <security:content-security-policy policy-directives="script-src  'self' 'unsafe-inline' 'unsafe-eval'" />
       <security:cache-control disabled="true"/>
</security:headers>

默认情况下X-FRAME-OPTIONSDENY。 但有些请求我应该将X-FRAME-OPTIONS 启用为SAMEORIGIN。怎么办?

【问题讨论】:

标签: spring-security


【解决方案1】:

您可以使用DelegatingRequestMatcherHeaderWriter,请参阅Spring Security Reference

20.2.3 DelegatingRequestMatcherHeaderWriter

有时您可能只想为某些请求编写标头。例如,也许您只想保护您的登录页面不被框住。您可以使用DelegatingRequestMatcherHeaderWriter 来执行此操作。使用 XML 命名空间配置时,可以通过以下方式完成:

<http>
  <!-- ... -->

  <headers>
      <frame-options disabled="true"/>
      <header ref="headerWriter"/>
  </headers>
</http>

<beans:bean id="headerWriter"
class="org.springframework.security.web.header.writers.DelegatingRequestMatcherHeaderWriter">
  <beans:constructor-arg>
      <bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher"
        c:pattern="/login"/>
  </beans:constructor-arg>
  <beans:constructor-arg>
      <beans:bean
        class="org.springframework.security.web.header.writers.frameoptions.XFrameOptionsHeaderWriter"/>
  </beans:constructor-arg>
</beans:bean>

要将 DENYSAMEORIGIN 用于不同的 URL,您必须添加两个具有两个不同 DelegatingRequestMatcherHeaderWriterheader 元素。

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2013-02-15
    • 2021-03-07
    • 2016-05-05
    相关资源
    最近更新 更多