add ktlint to project
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
@Suppress("ktlint:standard:property-naming")
|
||||||
val ktor_version: String by project
|
val ktor_version: String by project
|
||||||
val kotlin_version: String by project
|
val kotlin_version: String by project
|
||||||
val logback_version: String by project
|
val logback_version: String by project
|
||||||
@@ -6,6 +7,7 @@ plugins {
|
|||||||
kotlin("jvm") version "1.9.22"
|
kotlin("jvm") version "1.9.22"
|
||||||
id("io.ktor.plugin") version "2.3.8"
|
id("io.ktor.plugin") version "2.3.8"
|
||||||
id("org.jetbrains.kotlin.plugin.serialization") version "1.9.22"
|
id("org.jetbrains.kotlin.plugin.serialization") version "1.9.22"
|
||||||
|
id("org.jlleitschuh.gradle.ktlint") version "12.1.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "io.github.flecomte"
|
group = "io.github.flecomte"
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
package io.github.flecomte
|
package io.github.flecomte
|
||||||
|
|
||||||
import io.github.flecomte.plugins.*
|
import io.github.flecomte.plugins.configureHTTP
|
||||||
import io.ktor.server.application.*
|
import io.github.flecomte.plugins.configureRouting
|
||||||
import io.ktor.server.engine.*
|
import io.github.flecomte.plugins.configureSecurity
|
||||||
import io.ktor.server.netty.*
|
import io.github.flecomte.plugins.configureSerialization
|
||||||
|
import io.github.flecomte.plugins.configureSockets
|
||||||
|
import io.ktor.server.application.Application
|
||||||
|
import io.ktor.server.engine.embeddedServer
|
||||||
|
import io.ktor.server.netty.Netty
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
embeddedServer(Netty, port = 8080, host = "0.0.0.0", module = Application::module)
|
embeddedServer(Netty, port = 8080, host = "0.0.0.0", module = Application::module)
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package io.github.flecomte.plugins
|
package io.github.flecomte.plugins
|
||||||
|
|
||||||
import io.ktor.http.*
|
import io.ktor.http.HttpHeaders
|
||||||
import io.ktor.server.application.*
|
import io.ktor.http.HttpMethod
|
||||||
import io.ktor.server.plugins.cors.routing.*
|
import io.ktor.server.application.Application
|
||||||
|
import io.ktor.server.application.install
|
||||||
|
import io.ktor.server.plugins.cors.routing.CORS
|
||||||
|
|
||||||
fun Application.configureHTTP() {
|
fun Application.configureHTTP() {
|
||||||
install(CORS) {
|
install(CORS) {
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
package io.github.flecomte.plugins
|
package io.github.flecomte.plugins
|
||||||
|
|
||||||
import io.ktor.http.*
|
import io.ktor.http.HttpStatusCode
|
||||||
import io.ktor.resources.*
|
import io.ktor.resources.Resource
|
||||||
import io.ktor.server.application.*
|
import io.ktor.server.application.Application
|
||||||
import io.ktor.server.plugins.autohead.*
|
import io.ktor.server.application.call
|
||||||
import io.ktor.server.plugins.statuspages.*
|
import io.ktor.server.application.install
|
||||||
import io.ktor.server.resources.*
|
import io.ktor.server.plugins.autohead.AutoHeadResponse
|
||||||
|
import io.ktor.server.plugins.statuspages.StatusPages
|
||||||
import io.ktor.server.resources.Resources
|
import io.ktor.server.resources.Resources
|
||||||
import io.ktor.server.response.*
|
import io.ktor.server.resources.get
|
||||||
import io.ktor.server.routing.*
|
import io.ktor.server.response.respond
|
||||||
|
import io.ktor.server.response.respondText
|
||||||
|
import io.ktor.server.routing.get
|
||||||
|
import io.ktor.server.routing.routing
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
fun Application.configureRouting() {
|
fun Application.configureRouting() {
|
||||||
|
|||||||
@@ -2,11 +2,19 @@ package io.github.flecomte.plugins
|
|||||||
|
|
||||||
import com.auth0.jwt.JWT
|
import com.auth0.jwt.JWT
|
||||||
import com.auth0.jwt.algorithms.Algorithm
|
import com.auth0.jwt.algorithms.Algorithm
|
||||||
import io.ktor.server.application.*
|
import io.ktor.server.application.Application
|
||||||
import io.ktor.server.auth.*
|
import io.ktor.server.application.call
|
||||||
import io.ktor.server.auth.jwt.*
|
import io.ktor.server.auth.UserIdPrincipal
|
||||||
import io.ktor.server.response.*
|
import io.ktor.server.auth.authenticate
|
||||||
import io.ktor.server.routing.*
|
import io.ktor.server.auth.authentication
|
||||||
|
import io.ktor.server.auth.basic
|
||||||
|
import io.ktor.server.auth.form
|
||||||
|
import io.ktor.server.auth.jwt.JWTPrincipal
|
||||||
|
import io.ktor.server.auth.jwt.jwt
|
||||||
|
import io.ktor.server.auth.principal
|
||||||
|
import io.ktor.server.response.respondText
|
||||||
|
import io.ktor.server.routing.get
|
||||||
|
import io.ktor.server.routing.routing
|
||||||
|
|
||||||
fun Application.configureSecurity() {
|
fun Application.configureSecurity() {
|
||||||
// Please read the jwt property from the config file if you are using EngineMain
|
// Please read the jwt property from the config file if you are using EngineMain
|
||||||
@@ -22,7 +30,7 @@ fun Application.configureSecurity() {
|
|||||||
.require(Algorithm.HMAC256(jwtSecret))
|
.require(Algorithm.HMAC256(jwtSecret))
|
||||||
.withAudience(jwtAudience)
|
.withAudience(jwtAudience)
|
||||||
.withIssuer(jwtDomain)
|
.withIssuer(jwtDomain)
|
||||||
.build()
|
.build(),
|
||||||
)
|
)
|
||||||
validate { credential ->
|
validate { credential ->
|
||||||
if (credential.payload.audience.contains(jwtAudience)) JWTPrincipal(credential.payload) else null
|
if (credential.payload.audience.contains(jwtAudience)) JWTPrincipal(credential.payload) else null
|
||||||
@@ -45,7 +53,7 @@ fun Application.configureSecurity() {
|
|||||||
userParamName = "user"
|
userParamName = "user"
|
||||||
passwordParamName = "password"
|
passwordParamName = "password"
|
||||||
challenge {
|
challenge {
|
||||||
/**/
|
//
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package io.github.flecomte.plugins
|
package io.github.flecomte.plugins
|
||||||
|
|
||||||
import io.ktor.serialization.kotlinx.json.*
|
import io.ktor.serialization.kotlinx.json.json
|
||||||
import io.ktor.server.application.*
|
import io.ktor.server.application.Application
|
||||||
import io.ktor.server.plugins.contentnegotiation.*
|
import io.ktor.server.application.call
|
||||||
import io.ktor.server.response.*
|
import io.ktor.server.application.install
|
||||||
import io.ktor.server.routing.*
|
import io.ktor.server.plugins.contentnegotiation.ContentNegotiation
|
||||||
|
import io.ktor.server.response.respond
|
||||||
|
import io.ktor.server.routing.get
|
||||||
|
import io.ktor.server.routing.routing
|
||||||
|
|
||||||
fun Application.configureSerialization() {
|
fun Application.configureSerialization() {
|
||||||
install(ContentNegotiation) {
|
install(ContentNegotiation) {
|
||||||
|
|||||||
@@ -1,9 +1,16 @@
|
|||||||
package io.github.flecomte.plugins
|
package io.github.flecomte.plugins
|
||||||
|
|
||||||
import io.ktor.server.application.*
|
import io.ktor.server.application.Application
|
||||||
import io.ktor.server.routing.*
|
import io.ktor.server.application.install
|
||||||
import io.ktor.server.websocket.*
|
import io.ktor.server.routing.routing
|
||||||
import io.ktor.websocket.*
|
import io.ktor.server.websocket.WebSockets
|
||||||
|
import io.ktor.server.websocket.pingPeriod
|
||||||
|
import io.ktor.server.websocket.timeout
|
||||||
|
import io.ktor.server.websocket.webSocket
|
||||||
|
import io.ktor.websocket.CloseReason
|
||||||
|
import io.ktor.websocket.Frame
|
||||||
|
import io.ktor.websocket.close
|
||||||
|
import io.ktor.websocket.readText
|
||||||
import java.time.Duration
|
import java.time.Duration
|
||||||
|
|
||||||
fun Application.configureSockets() {
|
fun Application.configureSockets() {
|
||||||
|
|||||||
@@ -1,21 +1,23 @@
|
|||||||
package io.github.flecomte
|
package io.github.flecomte
|
||||||
|
|
||||||
import io.github.flecomte.plugins.*
|
import io.github.flecomte.plugins.configureRouting
|
||||||
import io.ktor.client.request.*
|
import io.ktor.client.request.get
|
||||||
import io.ktor.client.statement.*
|
import io.ktor.client.statement.bodyAsText
|
||||||
import io.ktor.http.*
|
import io.ktor.http.HttpStatusCode
|
||||||
import io.ktor.server.testing.*
|
import io.ktor.server.testing.testApplication
|
||||||
import kotlin.test.*
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
class ApplicationTest {
|
class ApplicationTest {
|
||||||
@Test
|
@Test
|
||||||
fun testRoot() = testApplication {
|
fun testRoot() =
|
||||||
application {
|
testApplication {
|
||||||
configureRouting()
|
application {
|
||||||
|
configureRouting()
|
||||||
|
}
|
||||||
|
client.get("/").apply {
|
||||||
|
assertEquals(HttpStatusCode.OK, status)
|
||||||
|
assertEquals("Hello World!", bodyAsText())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
client.get("/").apply {
|
|
||||||
assertEquals(HttpStatusCode.OK, status)
|
|
||||||
assertEquals("Hello World!", bodyAsText())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user