Тестирование защищенной конечной точки REST с помощью Spring MVC Test Framework

Я пытаюсь протестировать безопасный метод REST, используя Spring MVC Test Framework.

  val result = this.mockMvc!!
     .perform(get("/ping").with(SecurityMockMvcRequestPostProcessors.user("user")))
                .andDo(MockMvcResultHandlers.print())
                .andReturn()

  assertThat(result.response.contentAsString).contains("pong")

Проблема заключается в том, что по этому запросу поддельный сервер отвечает кодом 302, чтобы перенаправить его на защищенный канал. Результат никогда 2xx код, всегда 302 код. Я хотел бы выполнить это перенаправление или выполнить запрос по безопасному каналу в первый раз.

Как я могу выполнить этот тест, чтобы выполнить тестирование непосредственно на защищенном канале?

1 ответ

Наконец-то я нашел решение. Мне нужно позвонить secure(true) на высмеянном get("/"), Меня удивило, что это не в документации, а только в javadocs:

  val result = this.mockMvc!!
     .perform(get("/ping").secure(true).with(SecurityMockMvcRequestPostProcessors.user("user")))
                .andDo(MockMvcResultHandlers.print())
                .andReturn()

  assertThat(result.response.contentAsString).contains("pong")
Другие вопросы по тегам