Тест Spring Boot CORS JUnit завершается сбоем, пока Curl работаетJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Тест Spring Boot CORS JUnit завершается сбоем, пока Curl работает

Сообщение Anonymous »

Соответствующие части pom.xml:

Код: Выделить всё

org.springframework.boot
spring-boot-starter-parent
3.3.5




17




org.springframework.boot
spring-boot-starter-web


org.springframework.security
spring-security-test
test


Конфигурация Cors:

Код: Выделить всё

@Configuration
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CorsConfig  {
@Bean
public CorsFilter corsFilter()  {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(List.of("http://localhost", //
"https://test.example.org/", //
"https://stage.example.org", //
"https://example.org"));
configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
configuration.setAllowedHeaders(Arrays.asList("*"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return new CorsFilter(source);
}
}
Запуск приложения и выполнение команд Curl работает

Код: Выделить всё

$ curl -v -H "Access-Control-Request-Method: GET" -H "Origin: https://www.example.com"
http://localhost:8080/my-api/my-endpoint
Как и ожидалось, возвращается: Неверный запрос CORS * Соединение № 0 с локальным хостом осталось нетронутым

Код: Выделить всё

$ curl -v -H "Access-Control-Request-Method: GET" -H "Origin: http://localhost"
http://localhost:8080/my-api/my-endpoint
Как и ожидалось, возвращает правильный ответ JSON.
Однако этот тест JUnit не пройден:

Код: Выделить всё

@Test
void corsDeniesExampleDotCom() throws Exception {
MvcResult result = mockMvc.perform(get("/my-endpoint") //
.header("Access-Control-Request-Method", "GET") //
.header("Origin", "http://example.com")) //
.andExpect(status().isForbidden()) //
.andDo(print()) //
.andReturn();

}

Status expected: but was:
Как заставить этот тест JUnit работать?
Примечания:
Я просмотрел тестирование COR в SpringBootTest, и это старая версия вопрос, а предоставленные ответы не работают.

Подробнее здесь: https://stackoverflow.com/questions/792 ... curl-works
Ответить

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

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

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

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

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