starting with xs support

16
Timo Bryant 2024-01-10 10:47:17 +01:00
parent 17931ea1ca
commit 3036ba243c
6 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,10 @@
package de.itkl.httpClient
import kotlinx.datetime.Instant
import kotlinx.serialization.Serializable
@Serializable
data class BearerToken(
val tokenString: String,
val validUntil: Instant
)

View File

@ -0,0 +1,4 @@
package de.itkl.httpClient
class BearerTokenCache {
}

View File

@ -0,0 +1,17 @@
package de.itkl.httpClient
import io.github.oshai.kotlinlogging.KotlinLogging
import io.ktor.client.plugins.api.*
import io.ktor.util.*
import org.koin.core.component.KoinComponent
private val Log = KotlinLogging.logger { }
val smartCloudAuthPlugin = createClientPlugin("SmartCloudAuth") {
on(Send) { request ->
request.attributes.getOrNull(AttributeKey<String>("user"))?.let { username ->
Log.info { "Provide bearer token for $username" }
TODO("retrieve user token ")
}
TODO()
}
}

View File

@ -0,0 +1,9 @@
package de.itkl.httpClient.clients
import io.ktor.client.*
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
abstract class RestClient : KoinComponent {
private val httpClient by inject<HttpClient>()
}

View File

@ -0,0 +1,9 @@
package de.itkl.httpClient.clients
import io.ktor.client.*
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
class XsClient : KoinComponent {
private val httpClient by inject<HttpClient>()
}

View File

@ -10,5 +10,6 @@ fun createHttpClient(): HttpClient {
install(ContentNegotiation) { install(ContentNegotiation) {
json() json()
} }
install(smartCloudAuthPlugin)
} }
} }