Skip to content

Commit 13857cd

Browse files
author
Leandro Ferreira
committed
Adding CORS
1 parent cc71c30 commit 13857cd

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

backend/gateway/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ dependencies {
2424

2525
implementation(project(":common:endpoints"))
2626

27+
implementation(libs.ktor.server.cors)
28+
2729
implementation(libs.ktor.server.websocket)
2830
implementation(libs.ktor.server.cio)
2931
implementation(libs.logback.classic)

backend/gateway/src/main/kotlin/io/writeopia/api/geteway/Application.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package io.writeopia.api.geteway
22

3+
import io.ktor.http.HttpHeaders
4+
import io.ktor.http.HttpMethod
35
import io.ktor.server.application.Application
6+
import io.ktor.server.application.install
47
import io.ktor.server.cio.CIO
58
import io.ktor.server.engine.embeddedServer
9+
import io.ktor.server.plugins.cors.routing.CORS
610
import io.writeopia.api.core.auth.utils.installAuth
711
import io.writeopia.plugins.configureEditorSockets
812
import io.writeopia.sql.WriteopiaDbBackend
@@ -24,9 +28,20 @@ fun Application.module(
2428
adminKey: String? = System.getenv("ADMIN_KEY")
2529
) {
2630
println("debug: $debugMode")
31+
installCORS()
2732
installAuth()
2833
configureRouting(writeopiaDb, useAi, debugMode = debugMode, adminKey = adminKey)
2934
configureSerialization()
3035
configureEditorSockets()
3136
configureHTTP()
3237
}
38+
39+
fun Application.installCORS() {
40+
install(CORS) {
41+
allowHost("writeopia.io", schemes = listOf("https"))
42+
allowHeader(HttpHeaders.ContentType)
43+
allowHeader("X-Admin-KEY")
44+
allowMethod(HttpMethod.Post)
45+
allowMethod(HttpMethod.Options)
46+
}
47+
}

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ kotlin-coroutines-reactor = { module = "org.jetbrains.kotlinx:kotlinx-coroutines
6161
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
6262
ktor-server-auth = { module = "io.ktor:ktor-server-auth" }
6363
ktor-server-auth-jwt = { module = "io.ktor:ktor-server-auth-jwt" }
64+
ktor-server-cors = { module = "io.ktor:ktor-server-cors", version.ref = "ktor" }
6465
ktor-server-swagger = { module = "io.ktor:ktor-server-swagger" }
6566
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
6667
kotlinx-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinxCoroutinesSwing" }

0 commit comments

Comments
 (0)