Added new JWT-Token support and fixed some bugs.

This commit is contained in:
CodingPhoenixx
2026-02-15 22:19:24 +01:00
parent ffbf4f7500
commit c285c261d1
2 changed files with 11 additions and 4 deletions
+1 -1
View File
@@ -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")
@@ -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<ULID, User> 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);
}