diff --git a/src/main/java/com/openisle/service/JwtService.java b/src/main/java/com/openisle/service/JwtService.java index bdd814e10..0d2112a37 100644 --- a/src/main/java/com/openisle/service/JwtService.java +++ b/src/main/java/com/openisle/service/JwtService.java @@ -2,13 +2,14 @@ package com.openisle.service; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import io.jsonwebtoken.io.Decoders; -import io.jsonwebtoken.io.Encoders; import io.jsonwebtoken.security.Keys; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + import java.security.Key; import java.util.Date; @@ -21,8 +22,13 @@ public class JwtService { private long expiration; private Key getSigningKey() { - byte[] keyBytes = Encoders.BASE64.encode(secret.getBytes()).getBytes(); - return Keys.hmacShaKeyFor(keyBytes); + try { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] keyBytes = digest.digest(secret.getBytes(StandardCharsets.UTF_8)); + return Keys.hmacShaKeyFor(keyBytes); + } catch (NoSuchAlgorithmException e) { + throw new IllegalStateException("SHA-256 not available", e); + } } public String generateToken(String subject) {