diff --git a/backend/src/main/kotlin/com/github/sor2171/backend/entity/DataCopy.kt b/backend/src/main/kotlin/com/github/sor2171/backend/entity/DataCopy.kt index d4357aa..c56c742 100644 --- a/backend/src/main/kotlin/com/github/sor2171/backend/entity/DataCopy.kt +++ b/backend/src/main/kotlin/com/github/sor2171/backend/entity/DataCopy.kt @@ -7,6 +7,7 @@ import kotlin.reflect.full.createInstance import kotlin.reflect.full.declaredMemberProperties import kotlin.reflect.full.memberProperties import kotlin.reflect.jvm.isAccessible +import kotlin.reflect.jvm.javaField interface DataCopy { fun toAnotherObject( @@ -19,15 +20,21 @@ interface DataCopy { return try { val vo = toClass.createInstance() for (prop in toClass.declaredMemberProperties) { - @Suppress("UNCHECKED_CAST") - val mutableProp = prop as? KMutableProperty1 ?: continue val value = when { sourceProps.containsKey(prop.name) -> sourceProps[prop.name] otherProperties.containsKey(prop.name) -> otherProperties[prop.name] else -> continue } - mutableProp.isAccessible = true - mutableProp.set(vo, value) + @Suppress("UNCHECKED_CAST") + val mutableProp = prop as? KMutableProperty1 + if (mutableProp != null) { + mutableProp.isAccessible = true + mutableProp.set(vo, value) + } else { + val field = prop.javaField ?: continue + field.isAccessible = true + field.set(vo, value) + } } vo } catch (e: ReflectiveOperationException) { diff --git a/backend/src/main/kotlin/com/github/sor2171/backend/utils/JwtUtils.kt b/backend/src/main/kotlin/com/github/sor2171/backend/utils/JwtUtils.kt index a857c2d..197de01 100644 --- a/backend/src/main/kotlin/com/github/sor2171/backend/utils/JwtUtils.kt +++ b/backend/src/main/kotlin/com/github/sor2171/backend/utils/JwtUtils.kt @@ -25,7 +25,7 @@ class JwtUtils( private val algorithm: Algorithm = Algorithm.HMAC256(key) private val jwtVerifier: JWTVerifier = JWT.require(algorithm).build() private val logger = LoggerFactory.getLogger(this::class.java) - + fun invalidateJwt(headerToken: String?): Boolean { val token = this.convertToToken(headerToken) ?: return false try { @@ -59,10 +59,10 @@ class JwtUtils( val decodedJWT = jwtVerifier.verify(token) if (this.isInvalidToken(decodedJWT.id)) return null val expiresAt = decodedJWT.expiresAt - + return if (Date().after(expiresAt)) null else decodedJWT - + } catch (e: Exception) { logger.error("Error occurred while resolving JWT", e) return null @@ -104,6 +104,8 @@ class JwtUtils( return cal.time } - fun convertToToken(headerToken: String?): String? = - headerToken?.replace("Bearer ", "") + fun convertToToken(headerToken: String?): String? { + val token = headerToken?.replace("Bearer ", "")?.trim() + return token?.takeIf { it.isNotEmpty() } + } } \ No newline at end of file