我启用了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
。怎么办?
答案 0 :(得分:0)
您可以使用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
,您必须添加两个header
元素和两个不同的DelegatingRequestMatcherHeaderWriter
。