@nmshd/typescript-rest 3.1.6 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.ci/runChecks.sh CHANGED
@@ -4,4 +4,4 @@ npm ci
4
4
  npm run build
5
5
  npm run lint
6
6
  npx license-check
7
- npx better-npm-audit audit --exclude=1096727,1097682
7
+ npx better-npm-audit audit --exclude=1106509,1096727,1097682
@@ -64,7 +64,7 @@ export declare function Path(path: string): (...args: Array<any>) => void;
64
64
  * GET http://mydomain/people/123 (For all authorized users)
65
65
  * ```
66
66
  */
67
- export declare function Security(roles?: string | Array<string>, name?: string): (...args: Array<any>) => void;
67
+ export declare function Security(roles: string | [string, ...Array<string>], name?: string): (...args: Array<any>) => void;
68
68
  /**
69
69
  * A decorator to tell the [[Server]] that a class or a method
70
70
  * should include a pre-processor in its request pipelines.
@@ -80,7 +80,9 @@ function Path(path) {
80
80
  * ```
81
81
  */
82
82
  function Security(roles, name) {
83
- roles = _.castArray(roles || '*');
83
+ roles = Array.isArray(roles) ? roles : [roles];
84
+ if (roles.length === 0)
85
+ throw new Error('At least one role must be specified.');
84
86
  return new SecurityServiceDecorator('Security')
85
87
  .withObjectProperty('authenticator', name || 'default', roles)
86
88
  .createDecorator();
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/decorators/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/decorators/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { NextFunction, Request, Response } from 'express';
2
+ export declare function routeRequiresAuthorization(authenticator: {
3
+ getRoles: (req: Request, res: Response) => Array<string>;
4
+ }, ...permittedRoles: [string, ...Array<string>]): (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.routeRequiresAuthorization = routeRequiresAuthorization;
4
+ const debug = require("debug");
5
+ const Errors = require("../server/model/errors");
6
+ const debuggerInstance = debug('typescript-rest:middlewares:routeRequiresAuthorization');
7
+ function routeRequiresAuthorization(authenticator, ...permittedRoles) {
8
+ if (permittedRoles.length === 0)
9
+ throw new Error('At least one permitted role must be specified.');
10
+ const roleRegex = /^[a-zA-Z0-9_-]+(:[a-zA-Z0-9_-]+){0,}$/;
11
+ const nonMatchingRoles = permittedRoles.filter((role) => !roleRegex.test(role));
12
+ if (nonMatchingRoles.length > 0) {
13
+ throw new Error(`Invalid permitted role(s) specified: ${nonMatchingRoles.join(', ')}. Roles must match the pattern: ${roleRegex}.`);
14
+ }
15
+ return (req, res, next) => {
16
+ const requestRoles = authenticator.getRoles(req, res);
17
+ if (debuggerInstance.enabled)
18
+ debuggerInstance('Validating authentication roles: <%j>.', requestRoles);
19
+ const transformedRoles = requestRoles.map(transformUserRole);
20
+ const isAuthorized = permittedRoles.some((permittedRole) => isRoleMatched(permittedRole, transformedRoles));
21
+ if (!isAuthorized) {
22
+ next(new Errors.ForbiddenError('You are not allowed to access this endpoint.'));
23
+ return;
24
+ }
25
+ next();
26
+ };
27
+ }
28
+ function isRoleMatched(permittedRole, userRoles) {
29
+ for (const userRole of userRoles) {
30
+ const isMatch = userRole.test(permittedRole);
31
+ if (isMatch)
32
+ return true;
33
+ }
34
+ return false;
35
+ }
36
+ function transformUserRole(userRole) {
37
+ if (!userRole.includes('*'))
38
+ return new RegExp(`^${userRole}$`);
39
+ const regexString = userRole
40
+ .replaceAll('**', '[a-zA-Z0-9_-]+(:[a-zA-Z0-9_-]+){0,}')
41
+ .replaceAll('*', '[a-zA-Z0-9_-]+');
42
+ return new RegExp(`^${regexString}$`);
43
+ }
44
+ //# sourceMappingURL=routeRequiresAuthorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeRequiresAuthorization.js","sourceRoot":"","sources":["../../src/middlewares/routeRequiresAuthorization.ts"],"names":[],"mappings":";;AAMA,gEA2BC;AAjCD,+BAA+B;AAE/B,iDAAiD;AAEjD,MAAM,gBAAgB,GAAG,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAEzF,SAAgB,0BAA0B,CACtC,aAA2E,EAC3E,GAAG,cAA0C;IAE7C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAEnG,MAAM,SAAS,GAAG,uCAAuC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACX,wCAAwC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,SAAS,GAAG,CACrH,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACvD,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,gBAAgB,CAAC,OAAO;YAAE,gBAAgB,CAAC,wCAAwC,EAAE,YAAY,CAAC,CAAC;QAEvG,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,8CAA8C,CAAC,CAAC,CAAC;YAChF,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC;IACX,CAAC,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,aAAqB,EAAE,SAAwB;IAClE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,MAAM,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAG,QAAQ;SACvB,UAAU,CAAC,IAAI,EAAE,qCAAqC,CAAC;SACvD,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACvC,OAAO,IAAI,MAAM,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC;AAC1C,CAAC"}
@@ -100,11 +100,11 @@ export interface ServiceAuthenticator {
100
100
  /**
101
101
  * Initialize the authenticator
102
102
  */
103
- initialize(router: express.Router): void;
103
+ initialize?: (router: express.Router) => void;
104
104
  /**
105
105
  * Retrieve the middleware used to authenticate users.
106
106
  */
107
- getMiddleware(): express.RequestHandler;
107
+ getMiddleware?: () => express.RequestHandler;
108
108
  }
109
109
  export type ServiceProcessor = (req: express.Request, res?: express.Response) => void | Promise<void>;
110
110
  export type ParameterConverter = (paramValue: any) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"server-types.js","sourceRoot":"","sources":["../../../src/server/model/server-types.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAwBb;;GAEG;AACH,IAAY,UAQX;AARD,WAAY,UAAU;IAClB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,6BAAe,CAAA;AACnB,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED;;GAEG;AACH,MAAa,cAAc;CAsB1B;AAtBD,wCAsBC;AAED;;GAEG;AACH,MAAsB,kBAAkB;IAMpC;;;;OAIG;IACH,YACW,QAAgB,EAChB,UAAkB;QADlB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAU,GAAV,UAAU,CAAQ;IAC1B,CAAC;CACP;AAfD,gDAeC;AAwCD;;GAEG;AACH,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,yBAAW,CAAA;AACf,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB"}
1
+ {"version":3,"file":"server-types.js","sourceRoot":"","sources":["../../../src/server/model/server-types.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAwBb;;GAEG;AACH,IAAY,UAQX;AARD,WAAY,UAAU;IAClB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,6BAAe,CAAA;AACnB,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB;AAED;;GAEG;AACH,MAAa,cAAc;CA0B1B;AA1BD,wCA0BC;AAED;;GAEG;AACH,MAAsB,kBAAkB;IAMpC;;;;OAIG;IACH,YACW,QAAgB,EAChB,UAAkB;QADlB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAU,GAAV,UAAU,CAAQ;IAC1B,CAAC;CACP;AAfD,gDAeC;AA0CD;;GAEG;AACH,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,yBAAW,CAAA;AACf,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB"}
@@ -43,15 +43,13 @@ class ParameterProcessor {
43
43
  return null;
44
44
  });
45
45
  parameterMapper.set(metadata_1.ParamType.files, (context, property) => {
46
- var _a;
47
46
  this.debugger.runtime('Processing files parameter');
48
47
  // @ts-expect-error will be an array
49
- return (_a = context.request.files) === null || _a === void 0 ? void 0 : _a[property.name];
48
+ return context.request.files?.[property.name];
50
49
  });
51
50
  parameterMapper.set(metadata_1.ParamType.form, (context, property) => this.convertType(context.request.body[property.name], property.propertyType));
52
51
  parameterMapper.set(metadata_1.ParamType.param, (context, property) => {
53
- var _a;
54
- const paramValue = ((_a = context.request.body) !== null && _a !== void 0 ? _a : {})[property.name] || context.request.query[property.name];
52
+ const paramValue = (context.request.body ?? {})[property.name] || context.request.query[property.name];
55
53
  return this.convertType(paramValue, property.propertyType);
56
54
  });
57
55
  parameterMapper.set(metadata_1.ParamType.context, (context) => context);
@@ -1 +1 @@
1
- {"version":3,"file":"parameter-processor.js","sourceRoot":"","sources":["../../src/server/parameter-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameter-processor.js","sourceRoot":"","sources":["../../src/server/parameter-processor.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,6 @@ export declare class ServerContainer {
43
43
  private buildServiceMiddleware;
44
44
  private buildSecurityMiddlewares;
45
45
  private getAuthenticator;
46
- private buildAuthMiddleware;
47
46
  private buildParserMiddlewares;
48
47
  private buildBodyParserMiddleware;
49
48
  private buildFilesParserMiddleware;
@@ -1,14 +1,5 @@
1
1
  /* eslint-disable prefer-spread */
2
2
  'use strict';
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
3
  Object.defineProperty(exports, "__esModule", { value: true });
13
4
  exports.ServerContainer = exports.DefaultServiceFactory = void 0;
14
5
  const bodyParser = require("body-parser");
@@ -16,6 +7,7 @@ const cookieParser = require("cookie-parser");
16
7
  const debug = require("debug");
17
8
  const _ = require("lodash");
18
9
  const multer = require("multer");
10
+ const routeRequiresAuthorization_1 = require("../middlewares/routeRequiresAuthorization");
19
11
  const Errors = require("./model/errors");
20
12
  const metadata_1 = require("./model/metadata");
21
13
  const server_types_1 = require("./model/server-types");
@@ -39,8 +31,7 @@ class ServerContainer {
39
31
  this.serviceFactory = new DefaultServiceFactory();
40
32
  this.paramConverters = new Map();
41
33
  this.debugger = {
42
- build: debug('typescript-rest:server-container:build'),
43
- runtime: debug('typescript-rest:server-container:runtime')
34
+ build: debug('typescript-rest:server-container:build')
44
35
  };
45
36
  this.serverClasses = new Map();
46
37
  this.paths = new Map();
@@ -92,7 +83,8 @@ class ServerContainer {
92
83
  if (this.authenticator) {
93
84
  this.authenticator.forEach((auth, name) => {
94
85
  this.debugger.build('Initializing authenticator: %s', name);
95
- auth.initialize(this.router);
86
+ if (auth.initialize)
87
+ auth.initialize(this.router);
96
88
  });
97
89
  }
98
90
  this.serverClasses.forEach((classData) => {
@@ -280,13 +272,13 @@ class ServerContainer {
280
272
  buildServiceMiddleware(serviceMethod, serviceClass) {
281
273
  const serviceInvoker = new service_invoker_1.ServiceInvoker(serviceClass, serviceMethod);
282
274
  this.debugger.build('Creating the service middleware for method <%s>.', serviceMethod.name);
283
- return (req, res, next) => __awaiter(this, void 0, void 0, function* () {
275
+ return async (req, res, next) => {
284
276
  const context = new server_types_1.ServiceContext();
285
277
  context.request = req;
286
278
  context.response = res;
287
279
  context.next = next;
288
- yield serviceInvoker.callService(context);
289
- });
280
+ await serviceInvoker.callService(context);
281
+ };
290
282
  }
291
283
  buildSecurityMiddlewares(serviceClass, serviceMethod) {
292
284
  const result = new Array();
@@ -294,16 +286,16 @@ class ServerContainer {
294
286
  if (this.authenticator && authenticatorMap) {
295
287
  const authenticatorNames = Object.keys(authenticatorMap);
296
288
  for (const authenticatorName of authenticatorNames) {
297
- let roles = authenticatorMap[authenticatorName];
289
+ const roles = authenticatorMap[authenticatorName];
290
+ if (roles.length === 0)
291
+ continue;
298
292
  this.debugger.build('Registering an authenticator middleware <%s> for method <%s>.', authenticatorName, serviceMethod.name);
299
293
  const authenticator = this.getAuthenticator(authenticatorName);
300
- result.push(authenticator.getMiddleware());
301
- roles = roles.filter((role) => role !== '*');
302
- if (roles.length) {
303
- this.debugger.build('Registering a role validator middleware <%s> for method <%s>.', authenticatorName, serviceMethod.name);
304
- this.debugger.build('Roles: <%j>.', roles);
305
- result.push(this.buildAuthMiddleware(authenticator, roles));
306
- }
294
+ if (authenticator.getMiddleware)
295
+ result.push(authenticator.getMiddleware());
296
+ this.debugger.build('Registering a role validator middleware <%s> for method <%s>.', authenticatorName, serviceMethod.name);
297
+ this.debugger.build('Roles: <%j>.', roles);
298
+ result.push((0, routeRequiresAuthorization_1.routeRequiresAuthorization)(authenticator, roles[0], ...roles.slice(1)));
307
299
  }
308
300
  }
309
301
  return result;
@@ -314,20 +306,6 @@ class ServerContainer {
314
306
  }
315
307
  return this.authenticator.get(authenticatorName);
316
308
  }
317
- buildAuthMiddleware(authenticator, roles) {
318
- return (req, res, next) => {
319
- const requestRoles = authenticator.getRoles(req, res);
320
- if (this.debugger.runtime.enabled) {
321
- this.debugger.runtime('Validating authentication roles: <%j>.', requestRoles);
322
- }
323
- if (requestRoles.some((role) => roles.indexOf(role) >= 0)) {
324
- next();
325
- }
326
- else {
327
- throw new Errors.ForbiddenError();
328
- }
329
- };
330
- }
331
309
  buildParserMiddlewares(serviceClass, serviceMethod) {
332
310
  const result = new Array();
333
311
  const bodyParserOptions = serviceMethod.bodyParserOptions || serviceClass.bodyParserOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"server-container.js","sourceRoot":"","sources":["../../src/server/server-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-container.js","sourceRoot":"","sources":["../../src/server/server-container.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,4 @@
1
1
  'use strict';
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.ServiceInvoker = void 0;
13
4
  const debug = require("debug");
@@ -25,65 +16,57 @@ class ServiceInvoker {
25
16
  this.preProcessors = _.union(serviceMethod.preProcessors, serviceClass.preProcessors);
26
17
  this.postProcessors = _.union(serviceMethod.postProcessors, serviceClass.postProcessors);
27
18
  }
28
- callService(context) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- try {
31
- yield this.callTargetEndPoint(context);
32
- if (this.mustCallNext()) {
33
- context.next();
34
- }
35
- else if (this.debugger.enabled) {
36
- this.debugger('Ignoring next middlewares');
37
- }
19
+ async callService(context) {
20
+ try {
21
+ await this.callTargetEndPoint(context);
22
+ if (this.mustCallNext()) {
23
+ context.next();
38
24
  }
39
- catch (err) {
40
- context.next(err);
25
+ else if (this.debugger.enabled) {
26
+ this.debugger('Ignoring next middlewares');
41
27
  }
42
- });
28
+ }
29
+ catch (err) {
30
+ context.next(err);
31
+ }
43
32
  }
44
33
  mustCallNext() {
45
34
  return (!server_container_1.ServerContainer.get().ignoreNextMiddlewares &&
46
35
  !this.serviceMethod.ignoreNextMiddlewares &&
47
36
  !this.serviceClass.ignoreNextMiddlewares);
48
37
  }
49
- runPreProcessors(context) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- this.debugger('Running preprocessors');
52
- for (const processor of this.preProcessors) {
53
- yield Promise.resolve(processor(context.request, context.response));
54
- }
55
- });
38
+ async runPreProcessors(context) {
39
+ this.debugger('Running preprocessors');
40
+ for (const processor of this.preProcessors) {
41
+ await Promise.resolve(processor(context.request, context.response));
42
+ }
56
43
  }
57
- runPostProcessors(context) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- this.debugger('Running postprocessors');
60
- for (const processor of this.postProcessors) {
61
- yield Promise.resolve(processor(context.request, context.response));
62
- }
63
- });
44
+ async runPostProcessors(context) {
45
+ this.debugger('Running postprocessors');
46
+ for (const processor of this.postProcessors) {
47
+ await Promise.resolve(processor(context.request, context.response));
48
+ }
64
49
  }
65
- callTargetEndPoint(context) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- this.debugger('Calling targetEndpoint %s', this.serviceMethod.resolvedPath);
68
- this.checkAcceptance(context);
69
- if (this.preProcessors.length) {
70
- yield this.runPreProcessors(context);
71
- }
72
- const serviceObject = this.createService(context);
73
- const args = this.buildArgumentsList(context);
74
- const toCall = this.getMethodToCall();
75
- if (this.debugger.enabled) {
76
- this.debugger('Invoking service method <%s> with params: %j', this.serviceMethod.name, args);
77
- }
78
- const result = yield toCall.apply(serviceObject, args);
79
- if (this.postProcessors.length) {
80
- yield this.runPostProcessors(context);
81
- }
82
- if (!context.response.headersSent) {
83
- this.processResponseHeaders(context);
84
- }
85
- yield this.sendValue(result, context);
86
- });
50
+ async callTargetEndPoint(context) {
51
+ this.debugger('Calling targetEndpoint %s', this.serviceMethod.resolvedPath);
52
+ this.checkAcceptance(context);
53
+ if (this.preProcessors.length) {
54
+ await this.runPreProcessors(context);
55
+ }
56
+ const serviceObject = this.createService(context);
57
+ const args = this.buildArgumentsList(context);
58
+ const toCall = this.getMethodToCall();
59
+ if (this.debugger.enabled) {
60
+ this.debugger('Invoking service method <%s> with params: %j', this.serviceMethod.name, args);
61
+ }
62
+ const result = await toCall.apply(serviceObject, args);
63
+ if (this.postProcessors.length) {
64
+ await this.runPostProcessors(context);
65
+ }
66
+ if (!context.response.headersSent) {
67
+ this.processResponseHeaders(context);
68
+ }
69
+ await this.sendValue(result, context);
87
70
  }
88
71
  getMethodToCall() {
89
72
  return (this.serviceClass.targetClass.prototype[this.serviceMethod.name] ||
@@ -169,73 +152,67 @@ class ServiceInvoker {
169
152
  }
170
153
  }
171
154
  }
172
- sendValue(value, context) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- if (value !== return_types_1.NoResponse) {
175
- this.debugger('Sending response value: %o', value);
176
- switch (typeof value) {
177
- case 'number':
178
- context.response.send(value.toString());
179
- break;
180
- case 'string':
155
+ async sendValue(value, context) {
156
+ if (value !== return_types_1.NoResponse) {
157
+ this.debugger('Sending response value: %o', value);
158
+ switch (typeof value) {
159
+ case 'number':
160
+ context.response.send(value.toString());
161
+ break;
162
+ case 'string':
163
+ context.response.send(value);
164
+ break;
165
+ case 'boolean':
166
+ context.response.send(value.toString());
167
+ break;
168
+ case 'undefined':
169
+ if (!context.response.headersSent) {
170
+ context.response.sendStatus(204);
171
+ }
172
+ break;
173
+ default:
174
+ if (value === null) {
181
175
  context.response.send(value);
182
- break;
183
- case 'boolean':
184
- context.response.send(value.toString());
185
- break;
186
- case 'undefined':
187
- if (!context.response.headersSent) {
188
- context.response.sendStatus(204);
189
- }
190
- break;
191
- default:
192
- if (value === null) {
193
- context.response.send(value);
194
- }
195
- else {
196
- yield this.sendComplexValue(context, value);
197
- }
198
- }
199
- }
200
- else {
201
- this.debugger('Do not send any response value');
176
+ }
177
+ else {
178
+ await this.sendComplexValue(context, value);
179
+ }
202
180
  }
203
- });
181
+ }
182
+ else {
183
+ this.debugger('Do not send any response value');
184
+ }
204
185
  }
205
- sendComplexValue(context, value) {
206
- return __awaiter(this, void 0, void 0, function* () {
207
- if (value.filePath && value instanceof return_types_1.DownloadResource) {
208
- yield this.downloadResToPromise(context.response, value);
209
- }
210
- else if (value instanceof return_types_1.DownloadBinaryData) {
211
- this.sendFile(context, value);
212
- }
213
- else if (value.location && value instanceof server_types_1.ReferencedResource) {
214
- yield this.sendReferencedResource(context, value);
215
- }
216
- else if (value.then && value.catch) {
217
- const val = yield value;
218
- yield this.sendValue(val, context);
219
- }
220
- else {
221
- this.debugger('Sending a json value: %j', value);
222
- context.response.json(value);
223
- }
224
- });
186
+ async sendComplexValue(context, value) {
187
+ if (value.filePath && value instanceof return_types_1.DownloadResource) {
188
+ await this.downloadResToPromise(context.response, value);
189
+ }
190
+ else if (value instanceof return_types_1.DownloadBinaryData) {
191
+ this.sendFile(context, value);
192
+ }
193
+ else if (value.location && value instanceof server_types_1.ReferencedResource) {
194
+ await this.sendReferencedResource(context, value);
195
+ }
196
+ else if (value.then && value.catch) {
197
+ const val = await value;
198
+ await this.sendValue(val, context);
199
+ }
200
+ else {
201
+ this.debugger('Sending a json value: %j', value);
202
+ context.response.json(value);
203
+ }
225
204
  }
226
- sendReferencedResource(context, value) {
227
- return __awaiter(this, void 0, void 0, function* () {
228
- this.debugger('Setting the header Location: %s', value.location);
229
- this.debugger('Sendinf status code: %d', value.statusCode);
230
- context.response.set('Location', value.location);
231
- if (value.body) {
232
- context.response.status(value.statusCode);
233
- yield this.sendValue(value.body, context);
234
- }
235
- else {
236
- context.response.sendStatus(value.statusCode);
237
- }
238
- });
205
+ async sendReferencedResource(context, value) {
206
+ this.debugger('Setting the header Location: %s', value.location);
207
+ this.debugger('Sendinf status code: %d', value.statusCode);
208
+ context.response.set('Location', value.location);
209
+ if (value.body) {
210
+ context.response.status(value.statusCode);
211
+ await this.sendValue(value.body, context);
212
+ }
213
+ else {
214
+ context.response.sendStatus(value.statusCode);
215
+ }
239
216
  }
240
217
  sendFile(context, value) {
241
218
  this.debugger('Sending file as response');
@@ -1 +1 @@
1
- {"version":3,"file":"service-invoker.js","sourceRoot":"","sources":["../../src/server/service-invoker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-invoker.js","sourceRoot":"","sources":["../../src/server/service-invoker.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import * as Return from './server/model/return-types';
3
3
  export * from './decorators/methods';
4
4
  export * from './decorators/parameters';
5
5
  export * from './decorators/services';
6
+ export * from './middlewares/routeRequiresAuthorization';
6
7
  export * from './server/model/server-types';
7
8
  export * from './server/server';
8
9
  export { DefaultServiceFactory } from './server/server-container';
@@ -23,6 +23,7 @@ exports.Return = Return;
23
23
  __exportStar(require("./decorators/methods"), exports);
24
24
  __exportStar(require("./decorators/parameters"), exports);
25
25
  __exportStar(require("./decorators/services"), exports);
26
+ __exportStar(require("./middlewares/routeRequiresAuthorization"), exports);
26
27
  __exportStar(require("./server/model/server-types"), exports);
27
28
  __exportStar(require("./server/server"), exports);
28
29
  var server_container_1 = require("./server/server-container");
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-rest.js","sourceRoot":"","sources":["../src/typescript-rest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;AAEb,4CAA+C;AAC/C,gDAAgD;AAUvC,wBAAM;AATf,sDAAsD;AASrC,wBAAM;AAPvB,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,8DAA4C;AAC5C,kDAAgC;AAEhC,8DAAkE;AAAzD,yHAAA,qBAAqB,OAAA;AAG9B,qBAAY,CAAC,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"typescript-rest.js","sourceRoot":"","sources":["../src/typescript-rest.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;AAEb,4CAA+C;AAC/C,gDAAgD;AAWvC,wBAAM;AAVf,sDAAsD;AAUrC,wBAAM;AARvB,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,2EAAyD;AACzD,8DAA4C;AAC5C,kDAAgC;AAEhC,8DAAkE;AAAzD,yHAAA,qBAAqB,OAAA;AAG9B,qBAAY,CAAC,SAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nmshd/typescript-rest",
3
- "version": "3.1.6",
3
+ "version": "3.2.0",
4
4
  "description": "A Library to create RESTFul APIs with Typescript",
5
5
  "keywords": [
6
6
  "API",
@@ -73,8 +73,11 @@ export function Path(path: string) {
73
73
  * GET http://mydomain/people/123 (For all authorized users)
74
74
  * ```
75
75
  */
76
- export function Security(roles?: string | Array<string>, name?: string) {
77
- roles = _.castArray(roles || '*');
76
+ export function Security(roles: string | [string, ...Array<string>], name?: string) {
77
+ roles = Array.isArray(roles) ? roles : [roles];
78
+
79
+ if (roles.length === 0) throw new Error('At least one role must be specified.');
80
+
78
81
  return new SecurityServiceDecorator('Security')
79
82
  .withObjectProperty('authenticator', name || 'default', roles)
80
83
  .createDecorator();
@@ -0,0 +1,52 @@
1
+ import * as debug from 'debug';
2
+ import { NextFunction, Request, Response } from 'express';
3
+ import * as Errors from '../server/model/errors';
4
+
5
+ const debuggerInstance = debug('typescript-rest:middlewares:routeRequiresAuthorization');
6
+
7
+ export function routeRequiresAuthorization(
8
+ authenticator: { getRoles: (req: Request, res: Response) => Array<string> },
9
+ ...permittedRoles: [string, ...Array<string>]
10
+ ) {
11
+ if (permittedRoles.length === 0) throw new Error('At least one permitted role must be specified.');
12
+
13
+ const roleRegex = /^[a-zA-Z0-9_-]+(:[a-zA-Z0-9_-]+){0,}$/;
14
+ const nonMatchingRoles = permittedRoles.filter((role) => !roleRegex.test(role));
15
+ if (nonMatchingRoles.length > 0) {
16
+ throw new Error(
17
+ `Invalid permitted role(s) specified: ${nonMatchingRoles.join(', ')}. Roles must match the pattern: ${roleRegex}.`
18
+ );
19
+ }
20
+
21
+ return (req: Request, res: Response, next: NextFunction) => {
22
+ const requestRoles = authenticator.getRoles(req, res);
23
+ if (debuggerInstance.enabled) debuggerInstance('Validating authentication roles: <%j>.', requestRoles);
24
+
25
+ const transformedRoles = requestRoles.map(transformUserRole);
26
+ const isAuthorized = permittedRoles.some((permittedRole) => isRoleMatched(permittedRole, transformedRoles));
27
+ if (!isAuthorized) {
28
+ next(new Errors.ForbiddenError('You are not allowed to access this endpoint.'));
29
+ return;
30
+ }
31
+
32
+ next();
33
+ };
34
+ }
35
+
36
+ function isRoleMatched(permittedRole: string, userRoles: Array<RegExp>): boolean {
37
+ for (const userRole of userRoles) {
38
+ const isMatch = userRole.test(permittedRole);
39
+ if (isMatch) return true;
40
+ }
41
+
42
+ return false;
43
+ }
44
+
45
+ function transformUserRole(userRole: string): RegExp {
46
+ if (!userRole.includes('*')) return new RegExp(`^${userRole}$`);
47
+
48
+ const regexString = userRole
49
+ .replaceAll('**', '[a-zA-Z0-9_-]+(:[a-zA-Z0-9_-]+){0,}')
50
+ .replaceAll('*', '[a-zA-Z0-9_-]+');
51
+ return new RegExp(`^${regexString}$`);
52
+ }
@@ -43,18 +43,22 @@ export class ServiceContext {
43
43
  * The resolved language to be used in the current request handling.
44
44
  */
45
45
  public language: string;
46
+
46
47
  /**
47
48
  * The preferred media type to be used in the current request handling.
48
49
  */
49
50
  public accept: string;
51
+
50
52
  /**
51
53
  * The request object.
52
54
  */
53
55
  public request: express.Request;
56
+
54
57
  /**
55
58
  * The response object
56
59
  */
57
60
  public response: express.Response;
61
+
58
62
  /**
59
63
  * The next function. It can be used to delegate to the next middleware
60
64
  * registered the processing of the current request.
@@ -107,14 +111,16 @@ export interface ServiceAuthenticator {
107
111
  * Get the user list of roles.
108
112
  */
109
113
  getRoles: (req: express.Request, res: express.Response) => Array<string>;
114
+
110
115
  /**
111
116
  * Initialize the authenticator
112
117
  */
113
- initialize(router: express.Router): void;
118
+ initialize?: (router: express.Router) => void;
119
+
114
120
  /**
115
121
  * Retrieve the middleware used to authenticate users.
116
122
  */
117
- getMiddleware(): express.RequestHandler;
123
+ getMiddleware?: () => express.RequestHandler;
118
124
  }
119
125
 
120
126
  export type ServiceProcessor = (req: express.Request, res?: express.Response) => void | Promise<void>;
@@ -5,9 +5,9 @@ import * as bodyParser from 'body-parser';
5
5
  import * as cookieParser from 'cookie-parser';
6
6
  import * as debug from 'debug';
7
7
  import * as express from 'express';
8
- import { NextFunction, Request, Response } from 'express';
9
8
  import * as _ from 'lodash';
10
9
  import * as multer from 'multer';
10
+ import { routeRequiresAuthorization } from '../middlewares/routeRequiresAuthorization';
11
11
  import * as Errors from './model/errors';
12
12
  import { ServiceClass, ServiceMethod } from './model/metadata';
13
13
  import {
@@ -53,8 +53,7 @@ export class ServerContainer {
53
53
  public router: express.Router;
54
54
 
55
55
  private debugger = {
56
- build: debug('typescript-rest:server-container:build'),
57
- runtime: debug('typescript-rest:server-container:runtime')
56
+ build: debug('typescript-rest:server-container:build')
58
57
  };
59
58
  private upload: multer.Multer;
60
59
  private serverClasses: Map<Function, ServiceClass> = new Map<Function, ServiceClass>();
@@ -114,7 +113,7 @@ export class ServerContainer {
114
113
  if (this.authenticator) {
115
114
  this.authenticator.forEach((auth, name) => {
116
115
  this.debugger.build('Initializing authenticator: %s', name);
117
- auth.initialize(this.router);
116
+ if (auth.initialize) auth.initialize(this.router);
118
117
  });
119
118
  }
120
119
  this.serverClasses.forEach((classData) => {
@@ -337,24 +336,25 @@ export class ServerContainer {
337
336
  if (this.authenticator && authenticatorMap) {
338
337
  const authenticatorNames: Array<string> = Object.keys(authenticatorMap);
339
338
  for (const authenticatorName of authenticatorNames) {
340
- let roles: Array<string> = authenticatorMap[authenticatorName];
339
+ const roles: Array<string> = authenticatorMap[authenticatorName];
340
+ if (roles.length === 0) continue;
341
+
341
342
  this.debugger.build(
342
343
  'Registering an authenticator middleware <%s> for method <%s>.',
343
344
  authenticatorName,
344
345
  serviceMethod.name
345
346
  );
347
+
346
348
  const authenticator = this.getAuthenticator(authenticatorName);
347
- result.push(authenticator.getMiddleware());
348
- roles = roles.filter((role) => role !== '*');
349
- if (roles.length) {
350
- this.debugger.build(
351
- 'Registering a role validator middleware <%s> for method <%s>.',
352
- authenticatorName,
353
- serviceMethod.name
354
- );
355
- this.debugger.build('Roles: <%j>.', roles);
356
- result.push(this.buildAuthMiddleware(authenticator, roles));
357
- }
349
+ if (authenticator.getMiddleware) result.push(authenticator.getMiddleware());
350
+
351
+ this.debugger.build(
352
+ 'Registering a role validator middleware <%s> for method <%s>.',
353
+ authenticatorName,
354
+ serviceMethod.name
355
+ );
356
+ this.debugger.build('Roles: <%j>.', roles);
357
+ result.push(routeRequiresAuthorization(authenticator, roles[0], ...roles.slice(1)));
358
358
  }
359
359
  }
360
360
 
@@ -365,21 +365,8 @@ export class ServerContainer {
365
365
  if (!this.authenticator.has(authenticatorName)) {
366
366
  throw new Error(`Invalid authenticator name ${authenticatorName}`);
367
367
  }
368
- return this.authenticator.get(authenticatorName);
369
- }
370
368
 
371
- private buildAuthMiddleware(authenticator: ServiceAuthenticator, roles: Array<string>): express.RequestHandler {
372
- return (req: Request, res: Response, next: NextFunction) => {
373
- const requestRoles = authenticator.getRoles(req, res);
374
- if (this.debugger.runtime.enabled) {
375
- this.debugger.runtime('Validating authentication roles: <%j>.', requestRoles);
376
- }
377
- if (requestRoles.some((role: string) => roles.indexOf(role) >= 0)) {
378
- next();
379
- } else {
380
- throw new Errors.ForbiddenError();
381
- }
382
- };
369
+ return this.authenticator.get(authenticatorName);
383
370
  }
384
371
 
385
372
  private buildParserMiddlewares(
@@ -7,6 +7,7 @@ import * as Return from './server/model/return-types';
7
7
  export * from './decorators/methods';
8
8
  export * from './decorators/parameters';
9
9
  export * from './decorators/services';
10
+ export * from './middlewares/routeRequiresAuthorization';
10
11
  export * from './server/model/server-types';
11
12
  export * from './server/server';
12
13