Export & Import jwt privte key in config

This commit is contained in:
jeffcheasey88 2024-04-16 11:51:55 +02:00
parent 19b3f6391b
commit 634bcbadf4
4 changed files with 44 additions and 9 deletions

Binary file not shown.

View file

@ -41,6 +41,8 @@ public class Configuration {
private String mailFromAddress;
private String git_token;
private String jwt_key;
private File _file;
@ -207,4 +209,12 @@ public class Configuration {
public String getGitToken(){
return this.git_token;
}
public String getJwtKey(){
return this.jwt_key;
}
public void setJwtKey(String key){
this.jwt_key = key;
}
}

View file

@ -5,6 +5,7 @@ import static dev.peerat.framework.RequestType.OPTIONS;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import dev.peerat.backend.bonus.extract.RouteExtracter;
@ -58,6 +59,8 @@ import dev.peerat.framework.Response;
import dev.peerat.framework.Route;
import dev.peerat.framework.RouteInterceptor;
import dev.peerat.framework.Router;
import dev.peerat.framework.utils.json.JsonMap;
import dev.peerat.framework.utils.json.JsonParser;
public class Main{
@ -72,13 +75,6 @@ public class Main{
DatabaseRepository repo = new DatabaseRepository(config);
Router<PeerAtUser> router = new Router<PeerAtUser>()
.configureJwt(
(builder) -> builder.setExpectedIssuer(config.getTokenIssuer()),
(claims) -> {
claims.setIssuer(config.getTokenIssuer()); // who creates the token and signs it
claims.setExpirationTimeMinutesInTheFuture(config.getTokenExpiration());
},
(claims) -> new PeerAtUser(claims))
.activeReOrdering().
addDefaultHeaders(RequestType.GET, "Access-Control-Allow-Origin: *").
addDefaultHeaders(RequestType.POST, "Access-Control-Allow-Origin: *").
@ -87,6 +83,35 @@ public class Main{
"Access-Control-Allow-Methods: *",
"Access-Control-Allow-Headers: *");
ACCESS_ROUTER = router;
if(config.getJwtKey() != null){
JsonParser parser = new JsonParser();
JsonMap json = parser.parse(config.getJwtKey());
Map<String, Object> params = new HashMap<>();
for(Entry<String, Object> entry : json.entries()) params.put(entry.getKey(), entry.getValue());
router.configureJwt(
(builder) -> builder.setExpectedIssuer(config.getTokenIssuer()),
(claims) -> {
claims.setIssuer(config.getTokenIssuer());
claims.setExpirationTimeMinutesInTheFuture(config.getTokenExpiration());
},
(claims) -> new PeerAtUser(claims),
params);
}else{
router.configureJwt(
(builder) -> builder.setExpectedIssuer(config.getTokenIssuer()),
(claims) -> {
claims.setIssuer(config.getTokenIssuer());
claims.setExpirationTimeMinutesInTheFuture(config.getTokenExpiration());
},
(claims) -> new PeerAtUser(claims));
JsonMap json = new JsonMap();
for(Entry<String, Object> entry : router.exportJwtKey().entrySet()){
json.set(entry.getKey(), entry.getValue());
}
config.setJwtKey(json.toString());
config.save();
}
router.setDefault((matcher, context, reader, writer) -> {
context.response(404);

View file

@ -65,7 +65,7 @@ public class Leaderboard implements Response {
}
}
leaderboardJSON.set("groups", groupsJSON);
writer.write(leaderboardJSON.toString().replace("\\", ""));
writer.write(leaderboardJSON.toString());
}
public final void playersLeaderboard(HttpWriter writer) throws IOException {
@ -86,6 +86,6 @@ public class Leaderboard implements Response {
playersJSON.add(playerJSON);
}
}
writer.write(playersJSON.toString().replace("\\", ""));
writer.write(playersJSON.toString());
}
}