🔧 Changes plugin config

This commit is contained in:
Daniel Svitan 2025-05-11 11:13:56 +02:00
parent f10ce92627
commit 42544a2478
10 changed files with 30 additions and 15 deletions

View File

@ -9,11 +9,11 @@ plugins {
id("org.jetbrains.kotlin.plugin.serialization") version "2.1.10"
}
group = "svitan.dev"
group = "dev.svitan"
version = "0.0.1"
application {
mainClass = "svitan.dev.ApplicationKt"
mainClass = "dev.svitan.ApplicationKt"
}
repositories {

View File

@ -1,9 +1,15 @@
package svitan.dev
package dev.svitan
import io.github.cdimascio.dotenv.dotenv
import io.ktor.server.application.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import dev.svitan.plugins.configureAdministration
import dev.svitan.plugins.configureDatabases
import dev.svitan.plugins.configureHTTP
import dev.svitan.plugins.configureMonitoring
import dev.svitan.plugins.configureRouting
import dev.svitan.plugins.configureSecurity
fun main() {
embeddedServer(

View File

@ -1,4 +1,4 @@
package svitan.dev
package dev.svitan
import kotlinx.coroutines.Dispatchers
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package svitan.dev
package dev.svitan.plugins
import io.github.flaxoos.ktor.server.plugins.ratelimiter.RateLimiting
import io.github.flaxoos.ktor.server.plugins.ratelimiter.implementations.TokenBucket

View File

@ -1,4 +1,4 @@
package svitan.dev
package dev.svitan.plugins
import io.ktor.http.*
import io.ktor.server.application.*
@ -6,6 +6,8 @@ import io.ktor.server.request.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import org.jetbrains.exposed.sql.Database
import dev.svitan.ExposedUser
import dev.svitan.UserService
fun Application.configureDatabases() {
val database = Database.connect(

View File

@ -1,4 +1,4 @@
package svitan.dev
package dev.svitan.plugins
import io.ktor.http.*
import io.ktor.server.application.*
@ -8,11 +8,10 @@ import io.ktor.server.plugins.cors.routing.*
fun Application.configureHTTP() {
install(CORS) {
allowMethod(HttpMethod.Options)
allowMethod(HttpMethod.Post)
allowMethod(HttpMethod.Put)
allowMethod(HttpMethod.Delete)
allowMethod(HttpMethod.Patch)
allowHeader(HttpHeaders.Authorization)
allowHeader("MyCustomHeader")
allowMethod(HttpMethod.Delete)
anyHost() // @TODO: Don't do this in production if possible. Try to limit it.
}
install(Compression)

View File

@ -1,4 +1,4 @@
package svitan.dev
package dev.svitan.plugins
import io.ktor.server.application.*
import io.ktor.server.plugins.calllogging.*

View File

@ -1,10 +1,12 @@
package svitan.dev
package dev.svitan.plugins
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.plugins.requestvalidation.*
import io.ktor.server.plugins.statuspages.*
import io.ktor.server.response.*
import io.ktor.server.routing.get
import io.ktor.server.routing.routing
fun Application.configureRouting() {
install(RequestValidation) {
@ -20,4 +22,10 @@ fun Application.configureRouting() {
call.respondText(text = "500: $cause", status = HttpStatusCode.InternalServerError)
}
}
routing {
get("/") {
call.respond("Hello World!")
}
}
}

View File

@ -1,4 +1,4 @@
package svitan.dev
package dev.svitan.plugins
import io.github.cdimascio.dotenv.Dotenv
import io.ktor.server.application.*
@ -9,7 +9,7 @@ fun Application.configureSecurity(dotenv: Dotenv) {
authentication {
basic {
realm = "Ktor Server"
realm = "ktor"
validate { credentials ->
if (credentials.name == "admin" && credentials.password == apiKey) {
UserIdPrincipal(credentials.name)

View File

@ -1,4 +1,4 @@
package svitan.dev
package dev.svitan
import io.ktor.client.request.*
import io.ktor.http.*