Skip to content

Commit 1327f8c

Browse files
committed
fix: should fix preflight requests - attempt 2
1 parent b25cafa commit 1327f8c

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

src/main/kotlin/co/statu/parsek/route/RouterProvider.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)