Настройка безопасности для среды привода Spring Boot 2.0 - PullRequest
0 голосов
/ 26 апреля 2018

Я хотел бы использовать Spring Actuator Framework в моем приложении Spring Boot 2.0. Сам фреймворк работает, как и ожидалось, поэтому я могу достичь, например, моя /actuator/health конечная точка. Там я представил диалог входа в систему. Я хотел бы избавиться от этого и попробовал следующее:

@Configuration
@EnableWebFluxSecurity
public class SecurityConfiguration {

  @Bean
  public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {

    return http
               .authorizeExchange()
                   .matchers(EndpointRequest.to("prometheus")).permitAll()
                   .matchers(EndpointRequest.toAnyEndpoint()).authenticated()
                   .anyExchange().permitAll()
                   .and()
               .formLogin()
                  .and()
               .httpBasic()
                  .and()
               .build();
  }

Однако при запуске приложения появляется следующая ошибка:

Не удалось создать экземпляр [org.springframework.security.web.server.SecurityWebFilterChain]: фабричный метод 'securityWebFilterChain' вызвал исключение; Вложенное исключение - java.lang.IllegalArgumentException: authenticationManager не может быть нулевым

Конечно, я пытался найти его, но я всегда получаю только страницы, описывающие различные сценарии или конфигурацию безопасности с помощью среды Spring Boot 1.x. Кто-нибудь может мне здесь помочь?

1 Ответ

0 голосов
/ 26 апреля 2018

Вне моей головы, самый простой способ сделать это - сделать так, чтобы ваш SecurityConfiguration удлинил WebSecurityConfigurerAdapter и переопределил configure(WebSecurity web), вот так:

public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring()
                .antMatchers("/actuator/**");
    }

    // ...

}

Кроме того, я не знаком с @EnableWebFluxSecurity, но для того, чтобы вышеописанное работало, вам понадобятся аннотации @Configuration и @EnableWebSecurity.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...