OWASP/SSO_Project

View on GitHub
js-backend/utils/index.js

Summary

Maintainability
A
0 mins
Test Coverage
const mysql = require("mysql2");

const pwUtilLib = require("./password.js").PwUtil;
const UserLib = require("./user.js").User;
const Mailer = require("./mail.js").Mailer;
const Audit = require("./audit.js").Audit;
const JWTHandler = require("./jwt.js").JWTHandler;

// MOCKDB is only used by unit tests and can not be set as a normal environment variable
const db = process.env.MOCKDB ? process.env.MOCKDB : mysql.createPool({
    host: process.env.DBHOST,
    user: process.env.DBUSER,
    database: process.env.DBDATABASE,
    password: process.env.DBPASS,
});

// Initiated
exports.DB = db;
exports.User = (new UserLib(db));
exports.PwUtil = (new pwUtilLib(db));
exports.Audit = (new Audit(db));

exports.JWT = (new JWTHandler());

const isSMTPSecure = process.env.SMTPSECURE ? (process.env.SMTPSECURE==1) : true;
const MailerConfig = {
    host: process.env.SMTPHOST,
    port: process.env.SMTPPORT,
    secureConnection: false, // Disable SSL
    tls: {
        rejectUnauthorized: isSMTPSecure,
        tls: {
            minVersion: "TLSv1.2",
        },
    },
};
if(process.env.SMTPUSER && process.env.SMTPPASS) {
    MailerConfig.auth = {
        user: process.env.SMTPUSER,
        pass: process.env.SMTPPASS,
    };
}
exports.Mailer = (new Mailer(MailerConfig));