@@ -135,7 +135,18 @@ class RouterProvider private constructor(
135135 }
136136 }
137137
138+ val corsHandler = route.corsHandler(
139+ hosts = route.allowedHosts.takeIf { it.isNotEmpty() } ? : routerConfig.allowedHosts,
140+ schemes = route.allowedSchemes.takeIf { it.isNotEmpty() } ? : routerConfig.allowedSchemes,
141+ headers = route.allowedHeaders.takeIf { it.isNotEmpty() } ? : routerConfig.allowedHeaders,
142+ methods = (route.allowedMethods.takeIf { it.isNotEmpty() }?.map { it.name() }?.toSet()
143+ ? : routerConfig.allowedMethods).map { HttpMethod .valueOf(it) }.toSet()
144+ )
145+
138146 val routedRoute = if (httpMethod != null ) {
147+ if (corsHandler != null ) {
148+ router.route(HttpMethod .OPTIONS , url).handler(corsHandler)
149+ }
139150 router.route(httpMethod, url)
140151 } else {
141152 router.route(url)
@@ -150,14 +161,6 @@ class RouterProvider private constructor(
150161 routedRoute.handler(bodyHandler)
151162 }
152163
153- val corsHandler = route.corsHandler(
154- hosts = route.allowedHosts.takeIf { it.isNotEmpty() } ? : routerConfig.allowedHosts,
155- schemes = route.allowedSchemes.takeIf { it.isNotEmpty() } ? : routerConfig.allowedSchemes,
156- headers = route.allowedHeaders.takeIf { it.isNotEmpty() } ? : routerConfig.allowedHeaders,
157- methods = (route.allowedMethods.takeIf { it.isNotEmpty() }?.map { it.name() }?.toSet()
158- ? : routerConfig.allowedMethods).map { HttpMethod .valueOf(it) }.toSet()
159- )
160-
161164 if (corsHandler != null ) {
162165 routedRoute.handler(corsHandler)
163166 }
0 commit comments