Отключите безопасность в springBootTest с помощью WebTestClient - PullRequest
0 голосов
/ 30 января 2019

SpringBoot в примечаниях к выпуску 2.1 содержит следующую информацию:

Конфигурация безопасности теперь применяется к WebTestClient.Дополнительную информацию о тестировании защищенных конечных точек см. В соответствующем разделе справочной документации Spring Security.

Проблема:

После обновления SpringBoot с 2.0.4 на 2.1.2 Я обнаружил, что мои тесты перестали работать.Я использую @SpringBootTest для моего теста REST.Мой WebTestClient не может связаться с сервером.Я много пробовал (например, из здесь ) издеваться или отключать безопасность и все еще получать 403 FORBIDDEN ответ.

У вас есть какие-либо подсказки, что может быть не так?

Я создаю WebTestClient следующим образом:

client = WebTestClient
  .bindToServer()
  .baseUrl("http://localhost:$port")
  .build()

Также пытался исключить SecurityAutoConfiguration.class.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

В каком-то темном месте, глубоко в кроличьей норе, я нашел это:

@TestConfiguration
@Order(1)
public class SecurityConfiguration
  implements WebSecurityConfigurer<WebSecurity> {

  @Override
  public void init(WebSecurity builder) throws Exception {
    builder.ignoring().requestMatchers(
      new AntPathRequestMatcher("/**"));
  }

  @Override
  public void configure(WebSecurity builder) throws Exception {
  }

}

Помните, чтобы зарегистрировать класс в @SpringBootTest, например:

@SpringBootTest(
  classes = [SomeApplication, SecurityConfiguration],
  webEnvironment = RANDOM_PORT
)

Это не отключаетвесенняя безопасность, но она делает ее прозрачной.

0 голосов
/ 30 января 2019

Я нашел обходной путь для аналогичной проблемы, установив флаг secure на false для @WebMvcTest.

Как:

@WebMvcTest(controllers = SomeController.class, secure = false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...