pcp-ui-service: CORS allowedOriginPatterns — фикс Invalid CORS request на POST решения плана

This commit is contained in:
Дмитрий Соловьев
2026-06-03 09:28:09 +03:00
parent b61be0afb8
commit 17b8679e44
@@ -44,13 +44,14 @@ class CorsFilterComponent : WebFilter {
class WebConfig : WebMvcConfigurer { class WebConfig : WebMvcConfigurer {
override fun addCorsMappings(registry: CorsRegistry) { override fun addCorsMappings(registry: CorsRegistry) {
// Внутренний ops-инструмент: UI открывают с разных хостов/IP (localhost,
// LAN-адрес рабочей станции, прод-сборка). Любой явный список origin'ов рано
// или поздно не совпадает с фактическим адресом UI → POST/PUT/DELETE отбивается
// как «Invalid CORS request» (same-origin GET проходит, т.к. идёт без Origin).
// Поэтому разрешаем любой origin. allowedOriginPatterns("*") совместим с
// allowCredentials=true (в отличие от allowedOrigins("*")).
registry.addMapping("/**") registry.addMapping("/**")
.allowedOrigins( .allowedOriginPatterns("*")
"http://localhost:3000",
"http://localhost:8080",
"http://192.168.60.68:7008",
"http://192.168.60.68:8080"
)
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH") .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
.allowedHeaders("*") .allowedHeaders("*")
.allowCredentials(true) .allowCredentials(true)
@@ -63,11 +64,8 @@ class WebConfig : WebMvcConfigurer {
val source = UrlBasedCorsConfigurationSource() val source = UrlBasedCorsConfigurationSource()
val config = CorsConfiguration().apply { val config = CorsConfiguration().apply {
allowCredentials = true allowCredentials = true
// Разрешенные origin'ы // Любой origin — см. комментарий в addCorsMappings.
allowedOriginPatterns = listOf( allowedOriginPatterns = listOf("*")
"http://localhost:*",
"http://192.168.60.68:*"
)
// Разрешенные заголовки // Разрешенные заголовки
allowedHeaders = listOf( allowedHeaders = listOf(
"Origin", "Origin",