🔧 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" id("org.jetbrains.kotlin.plugin.serialization") version "2.1.10"
} }
group = "svitan.dev" group = "dev.svitan"
version = "0.0.1" version = "0.0.1"
application { application {
mainClass = "svitan.dev.ApplicationKt" mainClass = "dev.svitan.ApplicationKt"
} }
repositories { repositories {

View File

@ -1,9 +1,15 @@
package svitan.dev package dev.svitan
import io.github.cdimascio.dotenv.dotenv import io.github.cdimascio.dotenv.dotenv
import io.ktor.server.application.* import io.ktor.server.application.*
import io.ktor.server.engine.* import io.ktor.server.engine.*
import io.ktor.server.netty.* 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() { fun main() {
embeddedServer( embeddedServer(

View File

@ -1,4 +1,4 @@
package svitan.dev package dev.svitan
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.serialization.Serializable 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.RateLimiting
import io.github.flaxoos.ktor.server.plugins.ratelimiter.implementations.TokenBucket 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.http.*
import io.ktor.server.application.* import io.ktor.server.application.*
@ -6,6 +6,8 @@ import io.ktor.server.request.*
import io.ktor.server.response.* import io.ktor.server.response.*
import io.ktor.server.routing.* import io.ktor.server.routing.*
import org.jetbrains.exposed.sql.Database import org.jetbrains.exposed.sql.Database
import dev.svitan.ExposedUser
import dev.svitan.UserService
fun Application.configureDatabases() { fun Application.configureDatabases() {
val database = Database.connect( val database = Database.connect(

View File

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

View File

@ -1,4 +1,4 @@
package svitan.dev package dev.svitan.plugins
import io.ktor.server.application.* import io.ktor.server.application.*
import io.ktor.server.plugins.calllogging.* 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.http.*
import io.ktor.server.application.* import io.ktor.server.application.*
import io.ktor.server.plugins.requestvalidation.* import io.ktor.server.plugins.requestvalidation.*
import io.ktor.server.plugins.statuspages.* import io.ktor.server.plugins.statuspages.*
import io.ktor.server.response.* import io.ktor.server.response.*
import io.ktor.server.routing.get
import io.ktor.server.routing.routing
fun Application.configureRouting() { fun Application.configureRouting() {
install(RequestValidation) { install(RequestValidation) {
@ -20,4 +22,10 @@ fun Application.configureRouting() {
call.respondText(text = "500: $cause", status = HttpStatusCode.InternalServerError) 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.github.cdimascio.dotenv.Dotenv
import io.ktor.server.application.* import io.ktor.server.application.*
@ -9,7 +9,7 @@ fun Application.configureSecurity(dotenv: Dotenv) {
authentication { authentication {
basic { basic {
realm = "Ktor Server" realm = "ktor"
validate { credentials -> validate { credentials ->
if (credentials.name == "admin" && credentials.password == apiKey) { if (credentials.name == "admin" && credentials.password == apiKey) {
UserIdPrincipal(credentials.name) UserIdPrincipal(credentials.name)

View File

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