springboot-express
Version:
express-spring-boot
89 lines • 3.64 kB
JavaScript
;
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