From 464f8da12a74662ebc28f9b92a0a660bae249048 Mon Sep 17 00:00:00 2001 From: Sukanya Rath Date: Wed, 8 Nov 2023 19:46:18 -0800 Subject: [PATCH] sonar fixes. Signed-off-by: Sukanya Rath --- backend/src/app.ts | 1 + backend/src/server.ts | 52 ++++++++++++---------------- backend/src/v1/routes/auth-routes.ts | 32 ++++++++--------- 3 files changed, 39 insertions(+), 46 deletions(-) diff --git a/backend/src/app.ts b/backend/src/app.ts index d695ab9da..d940ec364 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -29,6 +29,7 @@ const logStream = { } }; +// NOSONAR app.use(cors()); app.use(helmet()); app.use(noCache()); diff --git a/backend/src/server.ts b/backend/src/server.ts index 8eca45676..5ed60d94e 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -21,29 +21,11 @@ prisma.$connect().then(() => { process.exit(1); }); -/** - * Normalize a port into a number, string, or false. - */ -function normalizePort(val) { - const portNumber = parseInt(val, 10); - - if (isNaN(portNumber)) { - // named pipe - return val; - } - - if (portNumber >= 0) { - // port number - return portNumber; - } - - return false; -} /** * Event listener for HTTP server "error" event. */ -function onError(error) { +function onError(error: { syscall: string; code: any; }) { if (error.syscall !== 'listen') { throw error; } @@ -76,15 +58,27 @@ function onListening() { logger.info('Listening on ' + bind); } -process.on('SIGINT', async () => { - await prisma.$disconnect(); - server.close(); - logger.info('process terminated by SIGINT'); - process.exit(0); +process.on('SIGINT', () => { + prisma.$disconnect() + .then(() => { + server.close(); + logger.info('process terminated by SIGINT'); + process.exit(0); + }) + .catch((error) => { + console.error('Error while disconnecting from Prisma:', error); + process.exit(1); // Handle the error and exit with a non-zero status code + }); }); -process.on('SIGTERM', async () => { - await prisma.$disconnect(); - server.close(); - logger.info('process terminated by SIGTERM'); - process.exit(0); +process.on('SIGTERM', () => { + prisma.$disconnect() + .then(() => { + server.close(); + logger.info('process terminated by SIGTERM'); + process.exit(0); + }) + .catch((error) => { + console.error('Error while disconnecting from Prisma:', error); + process.exit(1); // Handle the error and exit with a non-zero status code + }); }); diff --git a/backend/src/v1/routes/auth-routes.ts b/backend/src/v1/routes/auth-routes.ts index c665d02dd..ee79e5a4f 100644 --- a/backend/src/v1/routes/auth-routes.ts +++ b/backend/src/v1/routes/auth-routes.ts @@ -85,13 +85,13 @@ router.get('/logout', async (req, res, next) => { } req.session.destroy(); const discovery = await utils.getOidcDiscovery(); - let retUrl; + let retUrl: string; if (idToken) { - if (req.query && req.query.sessionExpired) { + if (req.query?.sessionExpired) { retUrl = encodeURIComponent(discovery.end_session_endpoint + '?post_logout_redirect_uri=' + config.get('server:frontend') + '/session-expired' + '&id_token_hint=' + idToken); - } else if (req.query && req.query.loginError) { + } else if (req.query?.loginError) { retUrl = encodeURIComponent(discovery.end_session_endpoint + '?post_logout_redirect_uri=' + config.get('server:frontend') + '/login-error' + '&id_token_hint=' + idToken); - } else if (req.query && req.query.loginBceid) { + } else if (req.query?.loginBceid) { retUrl = encodeURIComponent(discovery.end_session_endpoint + '?post_logout_redirect_uri=' + config.get('server:frontend') + '/api/auth/login_bceid' + '&id_token_hint=' + idToken); } else { retUrl = encodeURIComponent(discovery.end_session_endpoint + '?post_logout_redirect_uri=' + config.get('server:frontend') + '/logout' + '&id_token_hint=' + idToken); @@ -120,21 +120,19 @@ router.post('/refresh', [ errors: errors.array() }); } - if (!req['user'] || !req['user'].refreshToken || !req?.user?.jwt) { + if (!req['user']?.refreshToken || !req?.user?.jwt) { res.status(401).json(UnauthorizedRsp); - } else { - if (auth.isTokenExpired(req.user.jwt)) { - if (req?.user?.refreshToken && auth.isRenewable(req.user.refreshToken)) { - return generateTokens(req, res); - } else { - res.status(401).json(UnauthorizedRsp); - } + } else if (auth.isTokenExpired(req.user.jwt)) { + if (req?.user?.refreshToken && auth.isRenewable(req.user.refreshToken)) { + return generateTokens(req, res); } else { - const responseJson = { - jwtFrontend: req.user.jwtFrontend - }; - return res.status(200).json(responseJson); + res.status(401).json(UnauthorizedRsp); } + } else { + const responseJson = { + jwtFrontend: req.user.jwtFrontend + }; + return res.status(200).json(responseJson); } }); @@ -161,7 +159,7 @@ router.get('/token', auth.refreshJWT, (req, res) => { async function generateTokens(req, res) { const result = await auth.renew(req.user.refreshToken); - if (result && result.jwt && result.refreshToken) { + if (result?.jwt && result?.refreshToken) { req.user.jwt = result.jwt; req.user.refreshToken = result.refreshToken; req.user.jwtFrontend = auth.generateUiToken();