Java ConfigでSpring Security(ver3.2.7)の設定をする場合、disableする順序に癖がありそうです。
有効→無効の順番で指定すると、全部無効扱いになってしまいました。
@EnableWebSecurity
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// 有効
.and()
.headers().contentTypeOptions().frameOptions().xssProtection()
// 無効
.and()
.csrf().disable()
.headers().cacheControl().disable()
.headers().httpStrictTransportSecurity().disable()
;
}
x-frame-options
などが設定されていません。
無効→有効の順番で指定すると、意図した通りになりました。
@EnableWebSecurity
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.and()
// 無効
.csrf().disable()
.headers().cacheControl().disable()
.headers().httpStrictTransportSecurity().disable()
// 有効
.headers().contentTypeOptions().frameOptions().xssProtection()
;
}
意図したとおり、X-XSS-Protection
とx-content-type-options
とx-frame-options
が有効になり、
Strict-Transport-Security
とCache-Control
が無効になりました。
上記の件について、記載は見つかりませんでした。
http://docs.spring.io/spring-security/site/docs/3.2.7.RELEASE/reference/htmlsingle/#headers