From b070a22b0e6a739fd757aad10ec3d675310ad072 Mon Sep 17 00:00:00 2001 From: Swordsteel Date: Tue, 12 Aug 2025 15:09:07 +0200 Subject: [PATCH] move jwt user and jwt authentication --- .../kotlin/ltd/hlaeja/security/JwtAuthenticationConverter.kt | 4 +++- .../kotlin/ltd/hlaeja/security/JwtAuthenticationManager.kt | 5 +++-- .../{JwtAuthenticationToken.kt => user/JwtAuthentication.kt} | 4 ++-- .../kotlin/ltd/hlaeja/security/{ => user}/JwtUserDetails.kt | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) rename src/main/kotlin/ltd/hlaeja/security/{JwtAuthenticationToken.kt => user/JwtAuthentication.kt} (92%) rename src/main/kotlin/ltd/hlaeja/security/{ => user}/JwtUserDetails.kt (74%) diff --git a/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationConverter.kt b/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationConverter.kt index 8429a66..337aeb2 100644 --- a/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationConverter.kt +++ b/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationConverter.kt @@ -4,6 +4,8 @@ import io.github.oshai.kotlinlogging.KotlinLogging import io.jsonwebtoken.JwtException import java.util.UUID import ltd.hlaeja.jwt.service.PublicJwtService +import ltd.hlaeja.security.user.JwtAuthentication +import ltd.hlaeja.security.user.JwtUserDetails import org.springframework.http.HttpStatus.UNAUTHORIZED import org.springframework.security.core.Authentication import org.springframework.security.core.authority.SimpleGrantedAuthority @@ -40,7 +42,7 @@ class JwtAuthenticationConverter( } private fun jwtAuthenticationToken(token: String) = publicJwtService.verify(token) { claims -> - JwtAuthenticationToken( + JwtAuthentication( JwtUserDetails( UUID.fromString(claims.payload["id"] as String), claims.payload["username"] as String, diff --git a/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationManager.kt b/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationManager.kt index 0a03d4a..b745480 100644 --- a/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationManager.kt +++ b/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationManager.kt @@ -1,5 +1,6 @@ package ltd.hlaeja.security +import ltd.hlaeja.security.user.JwtAuthentication import org.springframework.security.authentication.ReactiveAuthenticationManager import org.springframework.security.core.Authentication import org.springframework.security.core.AuthenticationException @@ -11,14 +12,14 @@ class JwtAuthenticationManager : ReactiveAuthenticationManager { override fun authenticate( authentication: Authentication, - ): Mono = if (authentication is JwtAuthenticationToken) { + ): Mono = if (authentication is JwtAuthentication) { handleJwtToken(authentication) } else { Mono.error(object : AuthenticationException("Unsupported authentication type") {}) } private fun handleJwtToken( - token: JwtAuthenticationToken, + token: JwtAuthentication, ): Mono = if (token.isAuthenticated) { Mono.just(token) } else { diff --git a/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationToken.kt b/src/main/kotlin/ltd/hlaeja/security/user/JwtAuthentication.kt similarity index 92% rename from src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationToken.kt rename to src/main/kotlin/ltd/hlaeja/security/user/JwtAuthentication.kt index e733e64..9cbe861 100644 --- a/src/main/kotlin/ltd/hlaeja/security/JwtAuthenticationToken.kt +++ b/src/main/kotlin/ltd/hlaeja/security/user/JwtAuthentication.kt @@ -1,9 +1,9 @@ -package ltd.hlaeja.security +package ltd.hlaeja.security.user import org.springframework.security.core.Authentication import org.springframework.security.core.GrantedAuthority -data class JwtAuthenticationToken( +data class JwtAuthentication( private val jwtUserDetails: JwtUserDetails, private val token: String, private var authorities: MutableCollection, diff --git a/src/main/kotlin/ltd/hlaeja/security/JwtUserDetails.kt b/src/main/kotlin/ltd/hlaeja/security/user/JwtUserDetails.kt similarity index 74% rename from src/main/kotlin/ltd/hlaeja/security/JwtUserDetails.kt rename to src/main/kotlin/ltd/hlaeja/security/user/JwtUserDetails.kt index c9cb31f..5703528 100644 --- a/src/main/kotlin/ltd/hlaeja/security/JwtUserDetails.kt +++ b/src/main/kotlin/ltd/hlaeja/security/user/JwtUserDetails.kt @@ -1,4 +1,4 @@ -package ltd.hlaeja.security +package ltd.hlaeja.security.user import java.util.UUID