From 139c1fd215c8699fb2d87630833f30972c16f47c Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 24 Dec 2024 12:00:36 -0800 Subject: [PATCH] refactor middleware to use service registry --- Server/middleware/isAllowed.js | 7 ++++++- Server/middleware/verifyJWT.js | 9 ++++++--- Server/middleware/verifySuperAdmin.js | 4 +++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Server/middleware/isAllowed.js b/Server/middleware/isAllowed.js index 4aa1a0d81..bd75b00ad 100644 --- a/Server/middleware/isAllowed.js +++ b/Server/middleware/isAllowed.js @@ -1,6 +1,9 @@ import jwt from "jsonwebtoken"; const TOKEN_PREFIX = "Bearer "; const SERVICE_NAME = "allowedRoles"; +import ServiceRegistry from "../service/serviceRegistry.js"; +import SettingsService from "../service/settingsService.js"; + import { errorMessages } from "../utils/messages.js"; const isAllowed = (allowedRoles) => { @@ -27,7 +30,9 @@ const isAllowed = (allowedRoles) => { // Parse the token try { const parsedToken = token.slice(TOKEN_PREFIX.length, token.length); - const { jwtSecret } = req.settingsService.getSettings(); + const { jwtSecret } = ServiceRegistry.get( + SettingsService.SERVICE_NAME + ).getSettings(); var decoded = jwt.verify(parsedToken, jwtSecret); const userRoles = decoded.role; diff --git a/Server/middleware/verifyJWT.js b/Server/middleware/verifyJWT.js index cb52ef297..87fa53bd6 100644 --- a/Server/middleware/verifyJWT.js +++ b/Server/middleware/verifyJWT.js @@ -1,6 +1,7 @@ import jwt from "jsonwebtoken"; import { errorMessages } from "../utils/messages.js"; - +import ServiceRegistry from "../service/serviceRegistry.js"; +import SettingsService from "../service/settingsService.js"; const SERVICE_NAME = "verifyJWT"; const TOKEN_PREFIX = "Bearer "; @@ -34,7 +35,7 @@ const verifyJWT = (req, res, next) => { const parsedToken = token.slice(TOKEN_PREFIX.length, token.length); // Verify the token's authenticity - const { jwtSecret } = req.settingsService.getSettings(); + const { jwtSecret } = ServiceRegistry.get(SettingsService.SERVICE_NAME).getSettings(); jwt.verify(parsedToken, jwtSecret, (err, decoded) => { if (err) { if (err.name === "TokenExpiredError") { @@ -67,7 +68,9 @@ function handleExpiredJwtToken(req, res, next) { } // Verify refresh token - const { refreshTokenSecret } = req.settingsService.getSettings(); + const { refreshTokenSecret } = ServiceRegistry.get( + SettingsService.SERVICE_NAME + ).getSettings(); jwt.verify(refreshToken, refreshTokenSecret, (refreshErr, refreshDecoded) => { if (refreshErr) { // Invalid or expired refresh token, trigger logout diff --git a/Server/middleware/verifySuperAdmin.js b/Server/middleware/verifySuperAdmin.js index a8d9d1b6e..bf4c780a7 100644 --- a/Server/middleware/verifySuperAdmin.js +++ b/Server/middleware/verifySuperAdmin.js @@ -3,6 +3,8 @@ const logger = require("../utils/logger"); const SERVICE_NAME = "verifyAdmin"; const TOKEN_PREFIX = "Bearer "; const { errorMessages } = require("../utils/messages"); +import ServiceRegistry from "../service/serviceRegistry.js"; +import SettingsService from "../service/settingsService.js"; /** * Verifies the JWT token * @function @@ -33,7 +35,7 @@ const verifySuperAdmin = (req, res, next) => { const parsedToken = token.slice(TOKEN_PREFIX.length, token.length); // verify admin role is present - const { jwtSecret } = req.settingsService.getSettings(); + const { jwtSecret } = ServiceRegistry.get(SettingsService.SERVICE_NAME).getSettings(); jwt.verify(parsedToken, jwtSecret, (err, decoded) => { if (err) {