Adds isAdmin to JWT
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -5,6 +5,7 @@ import net.halfbinary.scavengerhuntapi.error.exception.ExpiredRefreshTokenExcept
|
||||
import net.halfbinary.scavengerhuntapi.error.exception.InvalidRefreshTokenException
|
||||
import net.halfbinary.scavengerhuntapi.model.RefreshId
|
||||
import net.halfbinary.scavengerhuntapi.model.record.RefreshTokenRecord
|
||||
import net.halfbinary.scavengerhuntapi.repository.HunterRepository
|
||||
import net.halfbinary.scavengerhuntapi.repository.RefreshTokenRepository
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
@@ -13,7 +14,7 @@ import java.time.LocalDateTime
|
||||
import java.time.temporal.ChronoUnit
|
||||
|
||||
@Service
|
||||
class RefreshTokenService(private val refreshTokenRepository: RefreshTokenRepository, private val jwtUtil: JwtUtil) {
|
||||
class RefreshTokenService(private val refreshTokenRepository: RefreshTokenRepository, private val jwtUtil: JwtUtil, private val hunterRepository: HunterRepository) {
|
||||
|
||||
companion object {
|
||||
private val log = LoggerFactory.getLogger(RefreshTokenService::class.java)
|
||||
@@ -25,7 +26,8 @@ class RefreshTokenService(private val refreshTokenRepository: RefreshTokenReposi
|
||||
removeToken(tokenId)
|
||||
throw ExpiredRefreshTokenException(tokenId)
|
||||
} else {
|
||||
jwtUtil.generateToken(refreshToken.email)
|
||||
val isAdmin = hunterRepository.findByEmail(refreshToken.email)?.isAdmin ?: false
|
||||
jwtUtil.generateToken(refreshToken.email, isAdmin)
|
||||
}
|
||||
}?: throw InvalidRefreshTokenException(tokenId)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user