Возможно ли добавлять URL-адреса для аутентификации с использованием SAML (через Spring Security) во время выполнения?

#java #spring #spring-mvc #spring-security #saml

#java #spring #spring-mvc #spring-security #saml

Вопрос:

В настоящее время мы пытаемся добавить интеграцию SAML в наш проект, и одним из требований является то, что администратор может использовать систему для добавления аутентификации к части веб-сайта.

Например, если приложение было размещено в «foo.com » тогда они смогут указать, что все страницы, начинающиеся с «foo.com/secret » должен быть аутентифицирован с использованием SAML.

Я знаю, как это можно сделать статически при запуске системы, но я изо всех сил пытаюсь найти какую-либо информацию о том, как изменить настройки безопасности Spring во время выполнения.

В настоящее время я пытаюсь протестировать это на примере проекта saml, который можно найти здесь:https://github.com/vdenotaris/spring-boot-security-saml-sample

Метод configure класса WebSecurityConfig выглядит следующим образом:

 @Override  
protected void configure(HttpSecurity http) throws Exception {
    http
        .httpBasic()
            .authenticationEntryPoint(samlEntryPoint());
    http
        .csrf()
            .disable();
    http
        .addFilterBefore(metadataGeneratorFilter(), ChannelProcessingFilter.class)
        .addFilterAfter(samlFilter(), BasicAuthenticationFilter.class);
    http        
        .authorizeRequests()
        .antMatchers("/").permitAll()
        .antMatchers("/error").permitAll()
        .antMatchers("/saml/**").permitAll()
        .anyRequest().authenticated();
    http
        .logout()
            .logoutSuccessUrl("/");
}
  

Я хочу иметь возможность добавить дополнительный antMatcher для нового URL, который аутентифицирован. Я смог изменить объект http во время выполнения, но это никак не влияет на безопасность.