UNPKG

springboot-express

Version:

express-spring-boot

89 lines 3.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MiddleWare = exports.ALGORITHM_JWT_ACCEPTED = void 0; const bodyParser = require("body-parser"); const Cookie_1 = require("lib-utils-ts/src/net/Cookie"); const logger20js_ts_1 = require("logger20js-ts"); const jwt = require("jsonwebtoken"); const SpringbootReq_1 = require("./SpringbootReq"); const Define_1 = require("lib-utils-ts/src/Define"); const Exception_1 = require("lib-utils-ts/src/Exception"); var ALGORITHM_JWT_ACCEPTED; (function (ALGORITHM_JWT_ACCEPTED) { ALGORITHM_JWT_ACCEPTED["HS256"] = "HS256"; ALGORITHM_JWT_ACCEPTED["RS256"] = "RS256"; })(ALGORITHM_JWT_ACCEPTED = exports.ALGORITHM_JWT_ACCEPTED || (exports.ALGORITHM_JWT_ACCEPTED = {})); class MiddleWare { constructor(app) { this.app = app; this.autoCall(); } autoCall() { this.app.getApp().use((req, res, next) => { let user = new SpringbootReq_1.SpringbootReq(); user.setType(this.app.getMockDefaultUserAccess()); req["springboot"] = user; next(); }); return this; } jsonBodyParser() { this.app.getApp().use(bodyParser.urlencoded({ extended: false })); this.app.getApp().use(bodyParser.json()); return this; } routeLogger(pattern = null) { this.app.getApp().use(logger20js_ts_1.Logger.expressRouteLoggerMiddleware(pattern)); return this; } cookieParser() { this.app.getApp().use((req, res, next) => { let user = req["springboot"]; if (req.headers.cookie.length > 0) { user.setCookie(req.headers .cookie .explodeAsList(";") .stream() .mapTo(value => Cookie_1.Cookie.parse(value)) .getList()); } next(); }); return this; } jwtAuthorization(secret, algorithm = ALGORITHM_JWT_ACCEPTED.HS256, cookieUser = null) { this.app.getApp().use((req, res, next) => { let token, spring = req["springboot"]; Object.requireNotNull(spring, "something wrong 'SpringbootReq' class is null !"); if (Define_1.Define.of(cookieUser).isNull() && req.headers.authorization) token = req.headers.authorization; else if (!Define_1.Define.of(cookieUser).isNull()) { token = spring.getCookie() .stream() .filter(cookie => cookie.getName().trim().equals(cookieUser.getName())) .findFirst() .orElse(new Cookie_1.Cookie("empty", "empty")) .getValue(); } if (token) { jwt.verify(token, secret, { algorithm: algorithm }, (error, payload) => { if (error) { return; } try { spring.setType(payload.access[0].role); spring.setJwtToken(payload); } catch (e) { throw new Exception_1.NullPointerException(e.stackTrace); } }); } else if (this.app.getMockDefaultUserAccess()) { spring.setType(this.app.getMockDefaultUserAccess()); spring.setJwtToken({ "access": [{ "role": this.app.getMockDefaultUserAccess() }] }); } next(); }); return this; } } exports.MiddleWare = MiddleWare; //# sourceMappingURL=MiddleWare.js.map