WhiteListedAllowFromStrategy не работает - PullRequest
1 голос
/ 09 июня 2019

Я использую Spring Security 5.1.5.RELEASE и пытаюсь установить для ALLOW FROM значение X-Frame-Options

Я использую WhiteListedAllowFromStrategy и передаю список URL-адресов в белый список, хотя header отправлено X-Frame-Options: DENY

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {

        String permittedRoutes [] = {"/", "/register"};

        http
            .headers()
                .frameOptions()
                    .disable()
                .addHeaderWriter(new XFrameOptionsHeaderWriter(new WhiteListedAllowFromStrategy(Arrays.asList("https://google.com"))));

        http
            .authorizeRequests()
                .antMatchers(permittedRoutes).permitAll()
                .and()
            .authorizeRequests()
                .antMatchers("/**").authenticated()
                .and()
            .formLogin()
                .loginPage("/")
                .defaultSuccessUrl("/home", true)
                .permitAll()
                .and()
            .logout()
                .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
                .permitAll()
                .invalidateHttpSession(true)
                .clearAuthentication(true)
                .deleteCookies("JSESSIONID")
                .logoutSuccessUrl("/?logout");
    }

    @Override
    public void configure(WebSecurity web) {
        web
            .ignoring()
                .antMatchers("/assets/**", "/css/**", "/images/**", "/js/**", "/fonts/**", "fonts.googleapis.com/**", "fonts.gstatic.com/**");
    }
}

Есть ли какие-либо предложения?

1 Ответ

4 голосов
/ 09 июня 2019

Чтобы использовать WhiteListedAllowFromStrategy, необходимо добавить параметр x-frames-allow-from (с источником в качестве значения) к вашему запросу, см. XFrameOptionsHeaderWriter с WhiteListedAllowFromStrategy не работает :

Комментарий от rwinch 21 октября 2014 г.

Необходимо убедиться, что вы указали источник с помощью параметра x-frames-allow-from, и этот источник должен соответствовать одному изисточники в белом списке.

См. также WhiteListedAllowFromStrategy#setAllowFromParameterName:

public void setAllowFromParameterName(java.lang.String allowFromParameterName)

Устанавливает параметр HTTP, используемый для получения значения для источника, который являетсяразрешено с.Значением параметра должен быть действительный URL.Имя параметра по умолчанию - «x-frames-allow-from».

Если вы хотите разрешить только один источник, вы можете использовать StaticAllowFromStrategy вместо WhiteListedAllowFromStrategy.

...