add JwtService

This commit is contained in:
2024-11-25 00:50:41 +01:00
parent de937b75fc
commit 3eca24c421
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
package ltd.hlaeja.service
import io.jsonwebtoken.JwtParser
import io.jsonwebtoken.Jwts
import java.util.UUID
import ltd.hlaeja.property.JwtProperty
import ltd.hlaeja.util.PublicKeyProvider
import mu.KotlinLogging
import org.springframework.stereotype.Service
private val log = KotlinLogging.logger {}
@Service
class JwtService(
jwtProperty: JwtProperty,
) {
private val parser: JwtParser = Jwts.parser()
.verifyWith(PublicKeyProvider.load(jwtProperty.publicKey))
.build()
suspend fun readIdentity(
identity: String,
): UUID = parser.parseSignedClaims(identity)
.let { UUID.fromString(it.payload["device"] as String) }
.also { log.debug("Identified client device: {}", it) }
}