From 10e4f3f03832a0ba72b6ad31a0ee5216201f1367 Mon Sep 17 00:00:00 2001 From: azures04 Date: Wed, 24 Dec 2025 19:08:38 +0100 Subject: [PATCH] Add public keys and blocked servers routes Introduces two new routes: one for serving public keys from the certificates manager at /minecraftservices/publickeys, and another for listing blocked servers from the sessions service at /sessionsserver/blockedservers. These endpoints provide necessary data for authentication and server validation processes. --- routes/minecraftservices/publickeys.js | 18 ++++++++++++++++++ routes/sessionsserver/blockedservers.js | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 routes/minecraftservices/publickeys.js create mode 100644 routes/sessionsserver/blockedservers.js diff --git a/routes/minecraftservices/publickeys.js b/routes/minecraftservices/publickeys.js new file mode 100644 index 0000000..8465151 --- /dev/null +++ b/routes/minecraftservices/publickeys.js @@ -0,0 +1,18 @@ +const express = require("express") +const router = express.Router() +const certificatesManager = require("../../modules/certificatesManager") + +router.get("", (req, res) => { + const keys = certificatesManager.getKeys() + const publicKeys = {} + for (const key in keys) { + publicKeys[key] = [ + { + publicKey: certificatesManager.extractKeyFromPem(keys[key].public) + } + ] + } + res.status(200).json(publicKeys) +}) + +module.exports = router \ No newline at end of file diff --git a/routes/sessionsserver/blockedservers.js b/routes/sessionsserver/blockedservers.js new file mode 100644 index 0000000..d0a57bd --- /dev/null +++ b/routes/sessionsserver/blockedservers.js @@ -0,0 +1,18 @@ +const express = require("express") +const router = express.Router() +const sessionsService = require("../../services/sessionsService") +const { DefaultError } = require("../../errors/errors") + +router.get("", async (req, res) => { + const serviceResult = await sessionsService.getBlockedServers() + if (serviceResult instanceof DefaultError) { + return res.status(200).send("") + } + const finalList = [] + for (const server of serviceResult.blockedServers) { + finalList.push(server.sha1) + } + return res.status(200).send(finalList.join("\r\n")) +}) + +module.exports = router \ No newline at end of file