diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..2baf4bb
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+FlightScoreBackend
\ No newline at end of file
diff --git a/.idea/db-forest-config.xml b/.idea/db-forest-config.xml
index fd9c831..cf0b1b1 100644
--- a/.idea/db-forest-config.xml
+++ b/.idea/db-forest-config.xml
@@ -1,5 +1,13 @@
+
+ .
+ ----------------------------------------
+ 1:0:e0f49905-9df6-459a-a57c-731edb2c1607
+ 2:0:74720f71-b717-4c46-a783-e93fc40a8785
+ 3:0:c2ae7de6-543e-4eed-8b31-a13cb00693a8
+ .
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 11a473f..f4a6582 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,7 +5,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/src/main/java/dev/coph/flightscore/backend/Backend.java b/src/main/java/dev/coph/flightscore/backend/Backend.java
index 7ce8927..858dd9d 100644
--- a/src/main/java/dev/coph/flightscore/backend/Backend.java
+++ b/src/main/java/dev/coph/flightscore/backend/Backend.java
@@ -27,9 +27,9 @@ public class Backend {
private final ProviderManager providerManager;
- private PermissionProvider permissionProvider;
- private RoleProvider roleProvider;
- private UserProvider userProvider;
+ private final PermissionProvider permissionProvider;
+ private final RoleProvider roleProvider;
+ private final UserProvider userProvider;
public Backend() {
diff --git a/src/main/java/dev/coph/flightscore/backend/actionResult/LoginActionResult.java b/src/main/java/dev/coph/flightscore/backend/actionResult/LoginActionResult.java
index 46b3c2e..62dbcc6 100644
--- a/src/main/java/dev/coph/flightscore/backend/actionResult/LoginActionResult.java
+++ b/src/main/java/dev/coph/flightscore/backend/actionResult/LoginActionResult.java
@@ -6,7 +6,7 @@ import lombok.experimental.Accessors;
@Getter
@Accessors(fluent = true)
-public class LoginActionResult extends ActionResult{
+public class LoginActionResult extends ActionResult {
private final User user;
@@ -19,6 +19,7 @@ public class LoginActionResult extends ActionResult{
this.accessToken = null;
this.refreshToken = null;
}
+
public LoginActionResult(User user, String accessToken, String refreshToken) {
super(true, "Login successful");
this.user = user;
diff --git a/src/main/java/dev/coph/flightscore/backend/requestHandler/auth/LoginRequestHandler.java b/src/main/java/dev/coph/flightscore/backend/requestHandler/auth/LoginRequestHandler.java
index 3e483d6..a5d3114 100644
--- a/src/main/java/dev/coph/flightscore/backend/requestHandler/auth/LoginRequestHandler.java
+++ b/src/main/java/dev/coph/flightscore/backend/requestHandler/auth/LoginRequestHandler.java
@@ -7,7 +7,6 @@ import dev.coph.simplerequest.body.JsonBody;
import dev.coph.simplerequest.handler.RequestHandler;
import dev.coph.simplerequest.handler.RequestMethod;
import dev.coph.simplerequest.util.ResponseUtil;
-import lombok.extern.slf4j.Slf4j;
import org.eclipse.jetty.http.HttpCookie;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.server.Response;
@@ -15,9 +14,7 @@ import org.eclipse.jetty.util.Callback;
import org.json.JSONObject;
import java.io.IOException;
-import java.util.Map;
-@Slf4j
public class LoginRequestHandler {
private final Logger logger = Logger.of("RH - Login");
private final Backend backend;
diff --git a/src/main/java/dev/coph/flightscore/backend/user/User.java b/src/main/java/dev/coph/flightscore/backend/user/User.java
index f7845b3..2066535 100644
--- a/src/main/java/dev/coph/flightscore/backend/user/User.java
+++ b/src/main/java/dev/coph/flightscore/backend/user/User.java
@@ -11,14 +11,14 @@ import java.util.Locale;
@Accessors(fluent = true)
public class User {
- private ULID id;
- private String firstName;
- private String lastName;
- private String email;
- private String phoneNumber;
- private Locale country;
+ private final ULID id;
+ private final String firstName;
+ private final String lastName;
+ private final String email;
+ private final String phoneNumber;
+ private final Locale country;
private Role role;
- private boolean blocked;
+ private final boolean blocked;
public User(ULID id, String firstname, String lastname, String email, String phoneNumber, Locale country, boolean blocked) {
this.id = id;
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 ea0c636..b4b146c 100644
--- a/src/main/java/dev/coph/flightscore/backend/user/UserProvider.java
+++ b/src/main/java/dev/coph/flightscore/backend/user/UserProvider.java
@@ -11,7 +11,6 @@ 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;
@@ -23,24 +22,19 @@ import dev.coph.simplesql.database.attributes.CreateMethod;
import dev.coph.simplesql.database.attributes.DataType;
import dev.coph.simplesql.query.Query;
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;
import java.util.concurrent.atomic.AtomicReference;
-@Slf4j
public class UserProvider implements Provider {
- private Logger logger = Logger.of("UserProvider");
private final Backend backend;
-
+ private final Logger logger = Logger.of("UserProvider");
private JwtSignAlgorithm jwtSignAlgorithm;
private long JWT_EXPIRATION_TIME;
@@ -253,6 +247,30 @@ public class UserProvider implements Provider {
return new LoginActionResult(user, accessToken, refreshToken);
}
+ 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())
+ .expiresAt(expiresAt / 1000)
+ .issuedAt(System.currentTimeMillis() / 1000);
+
+ if (user.role() != null) {
+ JSONArray permissions = new JSONArray();
+ user.role().permissions().forEach(permission -> permissions.put(permission.name()));
+ builder.claim("permission", permissions.toString());
+ builder.claim("role", user.role().id().toString());
+ }
+
+ return builder.sign();
+ } catch (JwtException e) {
+ logger.error("Error creating JWT", e);
+ }
+ return null;
+ }
+
public LoginActionResult refreshToken(String refreshToken) {
if (refreshToken == null || refreshToken.isEmpty()) {
return new LoginActionResult(false, "Invalid refresh token");
@@ -368,28 +386,4 @@ public class UserProvider implements Provider {
return exists.get();
}
- 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())
- .expiresAt(expiresAt / 1000)
- .issuedAt(System.currentTimeMillis() / 1000);
-
- if (user.role() != null) {
- JSONArray permissions = new JSONArray();
- user.role().permissions().forEach(permission -> permissions.put(permission.name()));
- builder.claim("permission", permissions.toString());
- builder.claim("role", user.role().id().toString());
- }
-
- return builder.sign();
- } catch (JwtException e) {
- logger.error("Error creating JWT", e);
- }
- return null;
- }
-
}
diff --git a/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java b/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java
index 2d6c6ee..a2e18d1 100644
--- a/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java
+++ b/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java
@@ -7,12 +7,11 @@ import lombok.experimental.Accessors;
@Getter
@Accessors(fluent = true)
public class Permission {
+ private final ULID id;
+ private final String name;
public Permission(ULID id, String name) {
this.id = id;
this.name = name;
}
- private ULID id;
- private String name;
-
}
diff --git a/src/main/java/dev/coph/flightscore/backend/user/permission/PermissionProvider.java b/src/main/java/dev/coph/flightscore/backend/user/permission/PermissionProvider.java
index ab2389c..dfe6b0e 100644
--- a/src/main/java/dev/coph/flightscore/backend/user/permission/PermissionProvider.java
+++ b/src/main/java/dev/coph/flightscore/backend/user/permission/PermissionProvider.java
@@ -38,7 +38,6 @@ public class PermissionProvider implements Provider {
.column("id", DataType.BINARY, 26, true)
.column("name", DataType.VARCHAR, 255)
.primaryKey(List.of("id"));
- ;
query.query(tableCreate);
}
diff --git a/src/main/java/dev/coph/flightscore/backend/user/role/Role.java b/src/main/java/dev/coph/flightscore/backend/user/role/Role.java
index 28ff0a2..b3a8e5a 100644
--- a/src/main/java/dev/coph/flightscore/backend/user/role/Role.java
+++ b/src/main/java/dev/coph/flightscore/backend/user/role/Role.java
@@ -11,15 +11,14 @@ import java.util.HashSet;
@Accessors(fluent = true)
public class Role {
+ private final ULID id;
+ private final String name;
+ private final boolean defaultRole;
+ private final HashSet permissions = new HashSet<>();
public Role(ULID id, String name, boolean defaultRole) {
this.id = id;
this.name = name;
this.defaultRole = defaultRole;
}
- private ULID id;
- private String name;
- private boolean defaultRole;
- private HashSet permissions = new HashSet<>();
-
}
diff --git a/src/main/java/dev/coph/flightscore/backend/user/role/RoleProvider.java b/src/main/java/dev/coph/flightscore/backend/user/role/RoleProvider.java
index f90bd09..8ae336b 100644
--- a/src/main/java/dev/coph/flightscore/backend/user/role/RoleProvider.java
+++ b/src/main/java/dev/coph/flightscore/backend/user/role/RoleProvider.java
@@ -11,7 +11,6 @@ import dev.coph.simplesql.query.Query;
import dev.coph.simpleutilities.ulid.ULID;
import lombok.Getter;
import lombok.experimental.Accessors;
-import org.checkerframework.checker.units.qual.C;
import java.util.HashMap;
import java.util.List;
@@ -19,12 +18,11 @@ import java.util.List;
@Accessors(fluent = true)
public class RoleProvider implements Provider {
private final Logger logger = Logger.of("RoleProvider");
- private HashMap roles = new HashMap<>();
+ private final Backend backend;
+ private final HashMap roles = new HashMap<>();
@Getter
private Role defaultRole;
- private final Backend backend;
-
public RoleProvider(Backend backend) {
this.backend = backend;
}
diff --git a/src/main/java/dev/coph/flightscore/backend/utils/Hash.java b/src/main/java/dev/coph/flightscore/backend/utils/Hash.java
index e0885b0..4568917 100644
--- a/src/main/java/dev/coph/flightscore/backend/utils/Hash.java
+++ b/src/main/java/dev/coph/flightscore/backend/utils/Hash.java
@@ -1,7 +1,6 @@
package dev.coph.flightscore.backend.utils;
import dev.coph.simplelogger.GenericLogger;
-import dev.coph.simplelogger.Logger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;