Как протестировать с помощью MockMVC и CSRF в Spring Boot 3JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Как протестировать с помощью MockMVC и CSRF в Spring Boot 3

Сообщение Гость »


У меня есть тест SpringBoot MockMVC, в котором я хочу протестировать конечную точку публикации следующим образом:

@AutoConfigureTestEntityManager @SpringBootTest @AutoConfigureMockMvc класс MyControllerTest { @Autowired частный MockMvc @Тест void postShouldReturnOkForValidInput() выдает исключение { ockMvc.perform(сообщение(Endpoints.LOG) .content(/*Некоторые действительные данные*/) .contentType(MediaType.APPLICATION_JSON) ).andExpect(status().isOk()); } } Однако этот тест не пройден из-за защиты CSRF. Теперь я знаю, что могу отключить его, и тогда тесты заработают, но я бы предпочел настроить свои тесты так, чтобы они передавали правильный токен CSRF.

Я нашел много источников, в которых говорится, что это должно работать следующим образом:

import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*; @AutoConfigureTestEntityManager @SpringBootTest @AutoConfigureMockMvc класс MyControllerTest { @Autowired частный MockMvc @Тест void postShouldReturnOkForValidInput() выдает исключение { ockMvc.perform(сообщение(Endpoints.LOG) .with(csrf()) .content(/*Некоторые действительные данные*/) .contentType(MediaType.APPLICATION_JSON) ).andExpect(status().isOk()); } } Проблема в том, что этого не происходит, потому что импорт не удается разрешить. В частности, он говорит, что не может выполнить «тест» (после import static org.springframework.security.). Я проверил, и у меня есть реализация зависимости 'org.springframework.boot:spring-boot-starter-security'. Фактически, импортируйте статический org.springframework.security, но среди содержащихся в нем пакетов просто нет test.

Теперь я знаю, что в Spring 3 многое изменилось. В частности, я использую версию 3.1.4. Это причина? Функция csrf() переместилась куда-то еще? Если да, то как правильно передать токен CSRF в Spring Boot 3? А если нет, то что я здесь делаю не так?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»