From a73cd1b0e3b1a5bd62e6ef88583de289182678bc Mon Sep 17 00:00:00 2001 From: TheSaminator Date: Sat, 9 Apr 2022 13:56:03 -0400 Subject: [PATCH] Renormalize session expiration time --- src/jvmMain/kotlin/starshipfights/auth/providers.kt | 4 ++-- src/jvmMain/kotlin/starshipfights/auth/utils.kt | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/jvmMain/kotlin/starshipfights/auth/providers.kt b/src/jvmMain/kotlin/starshipfights/auth/providers.kt index 96b4c89..bf19be4 100644 --- a/src/jvmMain/kotlin/starshipfights/auth/providers.kt +++ b/src/jvmMain/kotlin/starshipfights/auth/providers.kt @@ -419,7 +419,7 @@ object TestAuthProvider : AuthProvider { user = user.id, clientAddresses = listOf(originAddress), userAgent = userAgent, - expiration = Instant.now().plus(1, ChronoUnit.HOURS) + expiration = newExpiration() ).also { UserSession.put(it) } @@ -598,7 +598,7 @@ class ProductionAuthProvider(private val discordLogin: DiscordLogin) : AuthProvi user = user.id, clientAddresses = if (user.logIpAddresses) listOf(call.request.origin.remoteHost) else emptyList(), userAgent = userAgent, - expiration = Instant.now().plus(1, ChronoUnit.HOURS) + expiration = newExpiration() ) coroutineScope { diff --git a/src/jvmMain/kotlin/starshipfights/auth/utils.kt b/src/jvmMain/kotlin/starshipfights/auth/utils.kt index 5e8307b..fb7b240 100644 --- a/src/jvmMain/kotlin/starshipfights/auth/utils.kt +++ b/src/jvmMain/kotlin/starshipfights/auth/utils.kt @@ -20,8 +20,10 @@ suspend fun Id.resolve(userAgent: String) = UserSession.get(this)?. session.userAgent == userAgent && session.expiration > Instant.now() } +fun newExpiration(): Instant = Instant.now().plus(2, ChronoUnit.HOURS) + suspend fun UserSession.renewed(clientAddress: String) = copy( - expiration = Instant.now().plus(2, ChronoUnit.HOURS), + expiration = newExpiration(), clientAddresses = if (User.get(user)?.logIpAddresses != true) emptyList() else if (clientAddresses.lastOrNull() != clientAddress) -- 2.25.1