如何在 Spring Security 中为 x 框架选项提供请求匹配器?
Posted
技术标签:
【中文标题】如何在 Spring Security 中为 x 框架选项提供请求匹配器?【英文标题】:How to give request matcher in Spring Security for x frame options? 【发布时间】:2017-06-25 23:11:12 【问题描述】:我已启用 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-OPTIONS
是DENY
。
但有些请求我应该将X-FRAME-OPTIONS
启用为SAMEORIGIN
。怎么办?
【问题讨论】:
***.com/questions/28647136/…的可能重复 【参考方案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>
要将 DENY
和 SAMEORIGIN
用于不同的 URL,您必须添加两个具有两个不同 DelegatingRequestMatcherHeaderWriter
的 header
元素。
【讨论】:
以上是关于如何在 Spring Security 中为 x 框架选项提供请求匹配器?的主要内容,如果未能解决你的问题,请参考以下文章
如何避免自定义过滤器在spring-security中为不安全的url运行
如何在 Spring Security 中为所有请求添加 jwt 身份验证标头?
如何在spring security中为来自两个不同表的不同用户配置身份验证?
Spring:HttpSession在集群Tomcat故障转移中为SPRING_SECURITY_CONTEXT返回了空对象