舞台裏

Qiita が表でこっちが裏。こっそりやっていく。

20.2.2 Headers Writer

20.2.2 Headers Writer

When the namespace or Java configuration does not support the headers you want, you can create a custom HeadersWriter instance or even provide a custom implementation of the HeadersWriter.

namespace か Java Configuration がサポートしていないヘッダーが必要となった場合は、カスタムの HeaderWriter インスタンスを生成するか、カスタムの実装を提供することができます。

Let’s take a look at an example of using an custom instance of XFrameOptionsHeaderWriter.

XFrameOptionsHeaderWriter のカスタムインスタンスを使用する例を見てみましょう。

Perhaps you want to allow framing of content for the same origin.

おそらく、あなたは同じオリジンでのコンテンツのフレームかを許可したいと思うでしょう。

This is easily supported by setting the policy attribute to “SAMEORIGIN”, but let’s take a look at a more explicit example using the ref attribute.

これは、 “SAMEORIGIN” をポリシーの属性にセットすることで簡単にサポートされています。 しかし、 ref 属性を使用したより明示的な例を見てください。

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

    <headers>
        <header ref="frameOptionsWriter"/>
    </headers>
</http>
<!-- Requires the c-namespace.
See http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-c-namespace
-->
<beans:bean id="frameOptionsWriter"
    class="org.springframework.security.web.header.writers.frameoptions.XFrameOptionsHeaderWriter"
    c:frameOptionsMode="SAMEORIGIN"/>

We could also restrict framing of content to the same origin with Java configuration:

私たちは、 Java Configuration で同じオリジンでコンテンツをフレーム化することを制限することもできます。

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
    // ...
    .headers()
        .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsMode.SAMEORIGIN));
}
}