Как добавить X-Frame-Options только к некоторым ответам в Spring Security 3.2

Я хотел бы добавить заголовок X-Frame-Options ко всем страницам моего приложения Spring, кроме некоторых. Spring Security 3.2 предлагает удобную возможность добавлять этот заголовок ко всем ответам через конфигурацию <headers> <frame-options /> </headers>.

Но можно ли исключить этот заголовок из некоторых путей? Я подумал о подклассе XFrameOptionsHeaderWriter и сделал некоторое сопоставление регулярных выражений пути внутри, но это кажется немного уродливым. Может быть, есть более удобный способ сделать это?


person ronkot    schedule 19.11.2014    source источник


Ответы (1)


Я узнал, как это сделать с конфигурацией XML:

<http>
    <headers>
        <header ref="xFrameOptionsHeaderWriter" />
    </headers>
</http>


<beans:bean id="xFrameOptionsHeaderWriter" class="org.springframework.security.web.header.writers.DelegatingRequestMatcherHeaderWriter">
    <!-- Argument 1: RequestMatcher. This matcher will match all but some paths. -->
    <beans:constructor-arg> 
        <beans:bean class="org.springframework.security.web.util.matcher.NegatedRequestMatcher">
            <beans:constructor-arg>
                <beans:bean class="org.springframework.security.web.util.matcher.OrRequestMatcher">
                    <beans:constructor-arg>
                        <beans:list>
                            <beans:bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher" c:pattern="/**/some-path/**" />
                            <beans:bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher" c:pattern="/**/another-path/**" />
                        </beans:list>
                    </beans:constructor-arg>
                </beans:bean>
            </beans:constructor-arg>
        </beans:bean>
    </beans:constructor-arg>

    <!-- Argument 2: HeaderWriter -->
    <beans:constructor-arg>
        <beans:bean  class="org.springframework.security.web.header.writers.frameoptions.XFrameOptionsHeaderWriter" c:frameOptionsMode="SAMEORIGIN" />
    </beans:constructor-arg>
</beans:bean>
person ronkot    schedule 31.07.2015