Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
-62
@@ -1,62 +0,0 @@
|
||||
package space.nstart.pcp.slots_service.configuration
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
import org.springframework.web.cors.CorsConfiguration
|
||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource
|
||||
import org.springframework.web.filter.CorsFilter
|
||||
import org.springframework.web.servlet.config.annotation.CorsRegistry
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer
|
||||
|
||||
|
||||
@Configuration
|
||||
class WebConfig : WebMvcConfigurer {
|
||||
|
||||
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("/**")
|
||||
.allowedOriginPatterns("*")
|
||||
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
|
||||
.allowedHeaders("*")
|
||||
.allowCredentials(true)
|
||||
.maxAge(3600)
|
||||
}
|
||||
|
||||
// Альтернативный вариант через CorsFilter
|
||||
@Bean
|
||||
fun corsFilter(): CorsFilter {
|
||||
val source = UrlBasedCorsConfigurationSource()
|
||||
val config = CorsConfiguration().apply {
|
||||
allowCredentials = true
|
||||
// Любой origin — см. комментарий в addCorsMappings.
|
||||
allowedOriginPatterns = listOf("*")
|
||||
// Разрешенные заголовки
|
||||
allowedHeaders = listOf(
|
||||
"Origin",
|
||||
"Content-Type",
|
||||
"Accept",
|
||||
"Authorization",
|
||||
"X-Requested-With",
|
||||
"Access-Control-Request-Method",
|
||||
"Access-Control-Request-Headers"
|
||||
)
|
||||
// Разрешенные методы
|
||||
allowedMethods = listOf(
|
||||
"GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH", "HEAD"
|
||||
)
|
||||
// Заголовки, доступные клиенту
|
||||
exposedHeaders = listOf(
|
||||
"Access-Control-Allow-Origin",
|
||||
"Access-Control-Allow-Credentials"
|
||||
)
|
||||
maxAge = 3600L
|
||||
}
|
||||
|
||||
source.registerCorsConfiguration("/**", config)
|
||||
return CorsFilter(source)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user