From c285c261d1eaec96cf25438f3d85615369e8a6c7 Mon Sep 17 00:00:00 2001 From: CodingPhoenixx Date: Sun, 15 Feb 2026 22:19:24 +0100 Subject: [PATCH] Added new JWT-Token support and fixed some bugs. --- build.gradle | 2 +- .../coph/flightscore/backend/user/UserProvider.java | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 33421bf..5fa6cb1 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.42' annotationProcessor 'org.projectlombok:lombok:1.18.42' - implementation("dev.coph:simpleauthentication:0.3.0") + implementation("dev.coph:simpleauthentication:0.4.1") implementation("dev.coph:simplecache:1.3.0") implementation("dev.coph:simplelogger:3.2.4") implementation("dev.coph:simplerequest:5.1.1") diff --git a/src/main/java/dev/coph/flightscore/backend/user/UserProvider.java b/src/main/java/dev/coph/flightscore/backend/user/UserProvider.java index a09c811..ea0c636 100644 --- a/src/main/java/dev/coph/flightscore/backend/user/UserProvider.java +++ b/src/main/java/dev/coph/flightscore/backend/user/UserProvider.java @@ -11,6 +11,9 @@ import dev.coph.flightscore.backend.utils.TokenGenerator; import dev.coph.simpleauthentication.cryptography.CCrypt; import dev.coph.simpleauthentication.jwt.JWT; import dev.coph.simpleauthentication.jwt.JwtException; +import dev.coph.simpleauthentication.jwt.algorithm.EdDSAAlgorithm; +import dev.coph.simpleauthentication.jwt.algorithm.HS256Algorithm; +import dev.coph.simpleauthentication.jwt.algorithm.JwtSignAlgorithm; import dev.coph.simplecache.Cache; import dev.coph.simplecache.CacheBuilder; import dev.coph.simplelogger.Logger; @@ -23,9 +26,11 @@ import dev.coph.simpleutilities.ulid.ULID; import lombok.extern.slf4j.Slf4j; import org.json.JSONArray; +import java.io.File; import java.sql.Timestamp; import java.time.Duration; import java.time.Instant; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.concurrent.atomic.AtomicBoolean; @@ -36,7 +41,7 @@ public class UserProvider implements Provider { private Logger logger = Logger.of("UserProvider"); private final Backend backend; - private byte[] JWT_SECRET; + private JwtSignAlgorithm jwtSignAlgorithm; private long JWT_EXPIRATION_TIME; private Cache userCache; @@ -101,7 +106,7 @@ public class UserProvider implements Provider { if (jwtSecretString == null) { throw new RuntimeException("JWT_SECRET is not set in config.yml"); } - JWT_SECRET = jwtSecretString.getBytes(); + jwtSignAlgorithm = new HS256Algorithm(jwtSecretString.getBytes()); Long jwtExpirationMinutes = backend.configurationManager().configuration(Config.class).jwt_expirationInMinutes(); if (jwtExpirationMinutes == null) { @@ -366,6 +371,7 @@ public class UserProvider implements Provider { private String createAccessToken(User user, long expiresAt) { try { JWT.Builder builder = new JWT.Builder() + .algorithm(jwtSignAlgorithm) .audience("flightscore-api") .issuer("flightscore-api") .subject(user.id().toString()) @@ -378,7 +384,8 @@ public class UserProvider implements Provider { builder.claim("permission", permissions.toString()); builder.claim("role", user.role().id().toString()); } - return builder.sign(JWT_SECRET); + + return builder.sign(); } catch (JwtException e) { logger.error("Error creating JWT", e); }