@villedemontreal/jwt-validator 5.7.7

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.
Files changed (104) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +313 -0
  3. package/dist/scripts/index.d.ts +6 -0
  4. package/dist/scripts/index.js +16 -0
  5. package/dist/scripts/index.js.map +1 -0
  6. package/dist/scripts/lint.d.ts +6 -0
  7. package/dist/scripts/lint.js +18 -0
  8. package/dist/scripts/lint.js.map +1 -0
  9. package/dist/scripts/lintFix.d.ts +6 -0
  10. package/dist/scripts/lintFix.js +21 -0
  11. package/dist/scripts/lintFix.js.map +1 -0
  12. package/dist/scripts/showCoverage.d.ts +13 -0
  13. package/dist/scripts/showCoverage.js +40 -0
  14. package/dist/scripts/showCoverage.js.map +1 -0
  15. package/dist/scripts/test.d.ts +13 -0
  16. package/dist/scripts/test.js +29 -0
  17. package/dist/scripts/test.js.map +1 -0
  18. package/dist/scripts/testUnits.d.ts +15 -0
  19. package/dist/scripts/testUnits.js +95 -0
  20. package/dist/scripts/testUnits.js.map +1 -0
  21. package/dist/scripts/watch.d.ts +14 -0
  22. package/dist/scripts/watch.js +96 -0
  23. package/dist/scripts/watch.js.map +1 -0
  24. package/dist/src/config/configs.d.ts +88 -0
  25. package/dist/src/config/configs.js +123 -0
  26. package/dist/src/config/configs.js.map +1 -0
  27. package/dist/src/config/constants.d.ts +56 -0
  28. package/dist/src/config/constants.js +66 -0
  29. package/dist/src/config/constants.js.map +1 -0
  30. package/dist/src/config/init.d.ts +15 -0
  31. package/dist/src/config/init.js +48 -0
  32. package/dist/src/config/init.js.map +1 -0
  33. package/dist/src/index.d.ts +10 -0
  34. package/dist/src/index.js +32 -0
  35. package/dist/src/index.js.map +1 -0
  36. package/dist/src/jwtValidator.d.ts +21 -0
  37. package/dist/src/jwtValidator.js +129 -0
  38. package/dist/src/jwtValidator.js.map +1 -0
  39. package/dist/src/jwtValidator.test.d.ts +1 -0
  40. package/dist/src/jwtValidator.test.js +500 -0
  41. package/dist/src/jwtValidator.test.js.map +1 -0
  42. package/dist/src/middleware/jwtMiddleware.d.ts +7 -0
  43. package/dist/src/middleware/jwtMiddleware.js +27 -0
  44. package/dist/src/middleware/jwtMiddleware.js.map +1 -0
  45. package/dist/src/models/customError.d.ts +11 -0
  46. package/dist/src/models/customError.js +38 -0
  47. package/dist/src/models/customError.js.map +1 -0
  48. package/dist/src/models/expressRequest.d.ts +15 -0
  49. package/dist/src/models/expressRequest.js +17 -0
  50. package/dist/src/models/expressRequest.js.map +1 -0
  51. package/dist/src/models/gluuUserType.d.ts +9 -0
  52. package/dist/src/models/gluuUserType.js +14 -0
  53. package/dist/src/models/gluuUserType.js.map +1 -0
  54. package/dist/src/models/jwtPayload.d.ts +30 -0
  55. package/dist/src/models/jwtPayload.js +19 -0
  56. package/dist/src/models/jwtPayload.js.map +1 -0
  57. package/dist/src/models/pagination.d.ts +16 -0
  58. package/dist/src/models/pagination.js +16 -0
  59. package/dist/src/models/pagination.js.map +1 -0
  60. package/dist/src/models/publicKey.d.ts +29 -0
  61. package/dist/src/models/publicKey.js +13 -0
  62. package/dist/src/models/publicKey.js.map +1 -0
  63. package/dist/src/repositories/cachedPublicKeyRepository.d.ts +53 -0
  64. package/dist/src/repositories/cachedPublicKeyRepository.js +102 -0
  65. package/dist/src/repositories/cachedPublicKeyRepository.js.map +1 -0
  66. package/dist/src/repositories/publicKeyRepository.d.ts +19 -0
  67. package/dist/src/repositories/publicKeyRepository.js +44 -0
  68. package/dist/src/repositories/publicKeyRepository.js.map +1 -0
  69. package/dist/src/userValidator.d.ts +30 -0
  70. package/dist/src/userValidator.js +35 -0
  71. package/dist/src/userValidator.js.map +1 -0
  72. package/dist/src/userValidator.test.d.ts +1 -0
  73. package/dist/src/userValidator.test.js +251 -0
  74. package/dist/src/userValidator.test.js.map +1 -0
  75. package/dist/src/utils/jwtMock.d.ts +31 -0
  76. package/dist/src/utils/jwtMock.js +221 -0
  77. package/dist/src/utils/jwtMock.js.map +1 -0
  78. package/dist/src/utils/logger.d.ts +11 -0
  79. package/dist/src/utils/logger.js +54 -0
  80. package/dist/src/utils/logger.js.map +1 -0
  81. package/dist/src/utils/testingConfigurations.d.ts +7 -0
  82. package/dist/src/utils/testingConfigurations.js +16 -0
  83. package/dist/src/utils/testingConfigurations.js.map +1 -0
  84. package/package.json +82 -0
  85. package/src/config/configs.ts +145 -0
  86. package/src/config/constants.ts +83 -0
  87. package/src/config/init.ts +58 -0
  88. package/src/index.ts +15 -0
  89. package/src/jwtValidator.test.ts +607 -0
  90. package/src/jwtValidator.ts +162 -0
  91. package/src/middleware/jwtMiddleware.ts +33 -0
  92. package/src/models/customError.ts +37 -0
  93. package/src/models/expressRequest.ts +27 -0
  94. package/src/models/gluuUserType.ts +9 -0
  95. package/src/models/jwtPayload.ts +58 -0
  96. package/src/models/pagination.ts +26 -0
  97. package/src/models/publicKey.ts +33 -0
  98. package/src/repositories/cachedPublicKeyRepository.ts +121 -0
  99. package/src/repositories/publicKeyRepository.ts +75 -0
  100. package/src/userValidator.test.ts +279 -0
  101. package/src/userValidator.ts +54 -0
  102. package/src/utils/jwtMock.ts +243 -0
  103. package/src/utils/logger.ts +60 -0
  104. package/src/utils/testingConfigurations.ts +12 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwtValidator.test.js","sourceRoot":"","sources":["../../src/jwtValidator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import * as express from 'express';
2
+ /**
3
+ * JWT validation Middleware
4
+ *
5
+ * @param {boolean} mandatoryValidation Defines if the JWT is mandatory. Defaults to true.
6
+ */
7
+ export declare const jwtValidationMiddleware: (mandatoryValidation?: boolean) => (req: express.Request, res: express.Response, next: express.NextFunction) => Promise<void>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jwtValidationMiddleware = void 0;
4
+ const http_header_fields_typed_1 = require("http-header-fields-typed");
5
+ const constants_1 = require("../config/constants");
6
+ const jwtValidator_1 = require("../jwtValidator");
7
+ /**
8
+ * JWT validation Middleware
9
+ *
10
+ * @param {boolean} mandatoryValidation Defines if the JWT is mandatory. Defaults to true.
11
+ */
12
+ const jwtValidationMiddleware = (mandatoryValidation = true) => {
13
+ return async (req, res, next) => {
14
+ try {
15
+ const authHeader = req.get(http_header_fields_typed_1.default.AUTHORIZATION);
16
+ if (mandatoryValidation || authHeader) {
17
+ req[constants_1.constants.requestExtraVariables.JWT] = await jwtValidator_1.jwtValidator.verifyAuthorizationHeader(authHeader);
18
+ }
19
+ next();
20
+ }
21
+ catch (err) {
22
+ next(err);
23
+ }
24
+ };
25
+ };
26
+ exports.jwtValidationMiddleware = jwtValidationMiddleware;
27
+ //# sourceMappingURL=jwtMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwtMiddleware.js","sourceRoot":"","sources":["../../../src/middleware/jwtMiddleware.ts"],"names":[],"mappings":";;;AACA,uEAA6D;AAC7D,mDAAgD;AAChD,kDAA+C;AAE/C;;;;GAIG;AACI,MAAM,uBAAuB,GAE8D,CAChG,mBAAmB,GAAG,IAAI,EAC1B,EAAE;IACF,OAAO,KAAK,EACV,GAAoB,EACpB,GAAqB,EACrB,IAA0B,EACX,EAAE;QACjB,IAAI;YACF,MAAM,UAAU,GAAW,GAAG,CAAC,GAAG,CAAC,kCAAqB,CAAC,aAAa,CAAC,CAAC;YACxE,IAAI,mBAAmB,IAAI,UAAU,EAAE;gBACrC,GAAG,CAAC,qBAAS,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,MAAM,2BAAY,CAAC,yBAAyB,CACrF,UAAU,CACX,CAAC;aACH;YACD,IAAI,EAAE,CAAC;SACR;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,CAAC;SACX;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC"}
@@ -0,0 +1,11 @@
1
+ import { IApiError, IApiErrorAndInfo } from '@villedemontreal/general-utils';
2
+ /**
3
+ * Easily creates an "InvalidJWT" error (401). To throw when
4
+ * the user has a bad/expired JWT
5
+ */
6
+ export declare function createInvalidJwtError(detail: IApiError): IApiErrorAndInfo;
7
+ /**
8
+ * Easily creates an "invalidAuthHedaer" error (401). To throw when
9
+ * the user has a bad authorization header
10
+ */
11
+ export declare function createInvalidAuthHeaderError(detail: IApiError): IApiErrorAndInfo;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createInvalidAuthHeaderError = exports.createInvalidJwtError = void 0;
4
+ const general_utils_1 = require("@villedemontreal/general-utils");
5
+ const logger_1 = require("@villedemontreal/logger");
6
+ const HttpStatusCodes = require("http-status-codes");
7
+ const constants_1 = require("../config/constants");
8
+ /**
9
+ * Easily creates an "InvalidJWT" error (401). To throw when
10
+ * the user has a bad/expired JWT
11
+ */
12
+ function createInvalidJwtError(detail) {
13
+ return (0, general_utils_1.createError)(constants_1.constants.errors.codes.INVALID_JWT, 'Invalid JWT')
14
+ .httpStatus(HttpStatusCodes.UNAUTHORIZED)
15
+ .target('Authorization header')
16
+ .publicMessage('Invalid JWT')
17
+ .logLevel(logger_1.LogLevel.ERROR)
18
+ .logStackTrace(false)
19
+ .addDetail(detail)
20
+ .build();
21
+ }
22
+ exports.createInvalidJwtError = createInvalidJwtError;
23
+ /**
24
+ * Easily creates an "invalidAuthHedaer" error (401). To throw when
25
+ * the user has a bad authorization header
26
+ */
27
+ function createInvalidAuthHeaderError(detail) {
28
+ return (0, general_utils_1.createError)(constants_1.constants.errors.codes.INVALID_AUTHORIZATION_HEADER, 'Invalid Authorization header')
29
+ .httpStatus(HttpStatusCodes.UNAUTHORIZED)
30
+ .target('Authorization header')
31
+ .publicMessage('Invalid Authorization header')
32
+ .logLevel(logger_1.LogLevel.ERROR)
33
+ .logStackTrace(false)
34
+ .addDetail(detail)
35
+ .build();
36
+ }
37
+ exports.createInvalidAuthHeaderError = createInvalidAuthHeaderError;
38
+ //# sourceMappingURL=customError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customError.js","sourceRoot":"","sources":["../../../src/models/customError.ts"],"names":[],"mappings":";;;AAAA,kEAA0F;AAC1F,oDAAmD;AACnD,qDAAqD;AACrD,mDAAgD;AAEhD;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,MAAiB;IACrD,OAAO,IAAA,2BAAW,EAAC,qBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC;SAClE,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC;SACxC,MAAM,CAAC,sBAAsB,CAAC;SAC9B,aAAa,CAAC,aAAa,CAAC;SAC5B,QAAQ,CAAC,iBAAQ,CAAC,KAAK,CAAC;SACxB,aAAa,CAAC,KAAK,CAAC;SACpB,SAAS,CAAC,MAAM,CAAC;SACjB,KAAK,EAAE,CAAC;AACb,CAAC;AATD,sDASC;AAED;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,MAAiB;IAC5D,OAAO,IAAA,2BAAW,EAChB,qBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EACnD,8BAA8B,CAC/B;SACE,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC;SACxC,MAAM,CAAC,sBAAsB,CAAC;SAC9B,aAAa,CAAC,8BAA8B,CAAC;SAC7C,QAAQ,CAAC,iBAAQ,CAAC,KAAK,CAAC;SACxB,aAAa,CAAC,KAAK,CAAC;SACpB,SAAS,CAAC,MAAM,CAAC;SACjB,KAAK,EAAE,CAAC;AACb,CAAC;AAZD,oEAYC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Extend Express Request object
3
+ */
4
+ import * as express from 'express';
5
+ import { IJWTPayload } from '../models/jwtPayload';
6
+ export interface IRequestWithJwt extends express.Request {
7
+ /**
8
+ * The JSON Web Token of the request.
9
+ */
10
+ jwt: IJWTPayload;
11
+ }
12
+ /**
13
+ * Request with JWT Type Guard
14
+ */
15
+ export declare const isRequestWithJwt: (obj: any) => obj is IRequestWithJwt;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRequestWithJwt = void 0;
4
+ const _ = require("lodash");
5
+ const constants_1 = require("../config/constants");
6
+ /**
7
+ * Request with JWT Type Guard
8
+ */
9
+ const isRequestWithJwt = (obj) => {
10
+ return (obj &&
11
+ _.isObject(obj) &&
12
+ 'get' in obj &&
13
+ 'headers' in obj &&
14
+ constants_1.constants.requestExtraVariables.JWT in obj);
15
+ };
16
+ exports.isRequestWithJwt = isRequestWithJwt;
17
+ //# sourceMappingURL=expressRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressRequest.js","sourceRoot":"","sources":["../../../src/models/expressRequest.ts"],"names":[],"mappings":";;;AAIA,4BAA4B;AAC5B,mDAAgD;AAUhD;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,GAAQ,EAA0B,EAAE;IACnE,OAAO,CACL,GAAG;QACH,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QACf,KAAK,IAAI,GAAG;QACZ,SAAS,IAAI,GAAG;QAChB,qBAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,CAC3C,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The possible values of the "userType", in a JWT.
3
+ * Note that an empty (or non existent) "userType"
4
+ * means it is the JWT of a regular citizen.
5
+ */
6
+ export declare enum GluuUserType {
7
+ EMPLOYEE = "employee",
8
+ SERVICE_ACCOUNT = "serviceAccount"
9
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GluuUserType = void 0;
4
+ /**
5
+ * The possible values of the "userType", in a JWT.
6
+ * Note that an empty (or non existent) "userType"
7
+ * means it is the JWT of a regular citizen.
8
+ */
9
+ var GluuUserType;
10
+ (function (GluuUserType) {
11
+ GluuUserType["EMPLOYEE"] = "employee";
12
+ GluuUserType["SERVICE_ACCOUNT"] = "serviceAccount";
13
+ })(GluuUserType = exports.GluuUserType || (exports.GluuUserType = {}));
14
+ //# sourceMappingURL=gluuUserType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gluuUserType.js","sourceRoot":"","sources":["../../../src/models/gluuUserType.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,kDAAkC,CAAA;AACpC,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * A JWT payload
3
+ */
4
+ export interface IJWTPayload {
5
+ accessToken: string;
6
+ iss: string;
7
+ exp: number;
8
+ iat: number;
9
+ keyId: number;
10
+ displayName: string;
11
+ aud: string;
12
+ name: string;
13
+ sub: string;
14
+ /**
15
+ * @deprecated Please use mtlIdentityId or userName instead.
16
+ */
17
+ inum: string;
18
+ userName: string;
19
+ givenName: string;
20
+ familyName: string;
21
+ userType: string;
22
+ email?: string;
23
+ mtlIdentityId?: string;
24
+ employeeNumber?: string;
25
+ customData?: any;
26
+ }
27
+ /**
28
+ * IJWTPayload Type Guard
29
+ */
30
+ export declare const isJWTPayload: (obj: any) => obj is IJWTPayload;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isJWTPayload = void 0;
4
+ const _ = require("lodash");
5
+ /**
6
+ * IJWTPayload Type Guard
7
+ */
8
+ const isJWTPayload = (obj) => {
9
+ return (obj &&
10
+ _.isObject(obj) &&
11
+ 'accessToken' in obj &&
12
+ 'iss' in obj &&
13
+ 'exp' in obj &&
14
+ 'iat' in obj &&
15
+ 'sub' in obj &&
16
+ 'keyId' in obj);
17
+ };
18
+ exports.isJWTPayload = isJWTPayload;
19
+ //# sourceMappingURL=jwtPayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwtPayload.js","sourceRoot":"","sources":["../../../src/models/jwtPayload.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AA2C5B;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAsB,EAAE;IAC3D,OAAO,CACL,GAAG;QACH,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QACf,aAAa,IAAI,GAAG;QACpB,KAAK,IAAI,GAAG;QACZ,KAAK,IAAI,GAAG;QACZ,KAAK,IAAI,GAAG;QACZ,KAAK,IAAI,GAAG;QACZ,OAAO,IAAI,GAAG,CACf,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,YAAY,gBAWvB"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Represents a paginated result set. This follows the doc :
3
+ * https://villemontreal.atlassian.net/wiki/display/AES/REST+API#RESTAPI-Pagination.1
4
+ */
5
+ export interface IPaginatedResult<T> {
6
+ paging: {
7
+ offset: number;
8
+ limit: number;
9
+ totalCount: number;
10
+ };
11
+ items: T[];
12
+ }
13
+ /**
14
+ * IPaginatedResult Type Guard
15
+ */
16
+ export declare const isPaginatedResult: (obj: any) => obj is IPaginatedResult<any>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPaginatedResult = void 0;
4
+ /**
5
+ * IPaginatedResult Type Guard
6
+ */
7
+ const isPaginatedResult = (obj) => {
8
+ return (obj &&
9
+ 'paging' in obj &&
10
+ 'offset' in obj.paging &&
11
+ 'limit' in obj.paging &&
12
+ 'totalCount' in obj.paging &&
13
+ 'items' in obj);
14
+ };
15
+ exports.isPaginatedResult = isPaginatedResult;
16
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/models/pagination.ts"],"names":[],"mappings":";;;AAaA;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,GAAQ,EAAgC,EAAE;IAC1E,OAAO,CACL,GAAG;QACH,QAAQ,IAAI,GAAG;QACf,QAAQ,IAAI,GAAG,CAAC,MAAM;QACtB,OAAO,IAAI,GAAG,CAAC,MAAM;QACrB,YAAY,IAAI,GAAG,CAAC,MAAM;QAC1B,OAAO,IAAI,GAAG,CACf,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The content of public key
3
+ */
4
+ export interface IPublicKey {
5
+ id: number;
6
+ algorithm: string;
7
+ publicKey: string;
8
+ state: PublicKeyState;
9
+ createdAt?: string;
10
+ expiresAt?: string;
11
+ }
12
+ /**
13
+ * List of public key with keyId as key
14
+ */
15
+ export interface IPublicKeys {
16
+ [keyId: number]: IPublicKey;
17
+ }
18
+ /**
19
+ * Array of public key
20
+ */
21
+ export declare type IPublicKeysList = Array<IPublicKey>;
22
+ /**
23
+ * Public key state
24
+ */
25
+ export declare enum PublicKeyState {
26
+ ACTIVE = "active",
27
+ EXPIRED = "expired",
28
+ REVOKED = "revoked"
29
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicKeyState = void 0;
4
+ /**
5
+ * Public key state
6
+ */
7
+ var PublicKeyState;
8
+ (function (PublicKeyState) {
9
+ PublicKeyState["ACTIVE"] = "active";
10
+ PublicKeyState["EXPIRED"] = "expired";
11
+ PublicKeyState["REVOKED"] = "revoked";
12
+ })(PublicKeyState = exports.PublicKeyState || (exports.PublicKeyState = {}));
13
+ //# sourceMappingURL=publicKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicKey.js","sourceRoot":"","sources":["../../../src/models/publicKey.ts"],"names":[],"mappings":";;;AAyBA;;GAEG;AACH,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
@@ -0,0 +1,53 @@
1
+ import { IPublicKey, IPublicKeys } from '../models/publicKey';
2
+ import { IPublicKeyRepository } from './publicKeyRepository';
3
+ /**
4
+ * Cached Public Key repository
5
+ */
6
+ export interface ICachedPublicKeyRepository extends IPublicKeyRepository {
7
+ /**
8
+ * Clears the public keys in cache
9
+ */
10
+ clearCache(): void;
11
+ }
12
+ export declare class CachedPublicKeyRepository implements ICachedPublicKeyRepository {
13
+ /**
14
+ * Next update
15
+ */
16
+ private _nextUpdate;
17
+ /**
18
+ * Cached public keys
19
+ */
20
+ private _cachedKeys;
21
+ /**
22
+ * Clears the public keys in cache
23
+ */
24
+ clearCache(): void;
25
+ /**
26
+ * Return the last public keys
27
+ * @return {Promise<IPublicKeys>}
28
+ */
29
+ getAll(): Promise<IPublicKeys>;
30
+ /**
31
+ * Return one public key
32
+ * @param {number} keyId
33
+ * @return {Promise<IPublicKey>}
34
+ */
35
+ getOne(keyId: number): Promise<IPublicKey>;
36
+ /**
37
+ * Check if the error is a network error, server error or
38
+ * If true, do not throw error
39
+ * @return {boolean}
40
+ */
41
+ private isTransientError;
42
+ /**
43
+ * Check if the cache is stil valid
44
+ * @return {boolean}
45
+ */
46
+ private isValidCache;
47
+ /**
48
+ * Update the date of the next update
49
+ * @return
50
+ */
51
+ private updateNextCacheUpdate;
52
+ }
53
+ export declare const cachedPublicKeyRepository: ICachedPublicKeyRepository;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cachedPublicKeyRepository = exports.CachedPublicKeyRepository = void 0;
4
+ const src_1 = require("@villedemontreal/general-utils/dist/src");
5
+ const lodash_1 = require("lodash");
6
+ const moment = require("moment");
7
+ const configs_1 = require("../config/configs");
8
+ const logger_1 = require("../utils/logger");
9
+ const publicKeyRepository_1 = require("./publicKeyRepository");
10
+ const logger = (0, logger_1.createLogger)('CachedPublicKeyRepository');
11
+ class CachedPublicKeyRepository {
12
+ constructor() {
13
+ /**
14
+ * Cached public keys
15
+ */
16
+ this._cachedKeys = {};
17
+ }
18
+ /**
19
+ * Clears the public keys in cache
20
+ */
21
+ clearCache() {
22
+ this._cachedKeys = {};
23
+ this._nextUpdate = moment.utc();
24
+ }
25
+ /**
26
+ * Return the last public keys
27
+ * @return {Promise<IPublicKeys>}
28
+ */
29
+ async getAll() {
30
+ if (!this.isValidCache()) {
31
+ const keysList = await publicKeyRepository_1.publicKeyRepository.getAll();
32
+ if (keysList) {
33
+ this.updateNextCacheUpdate();
34
+ this._cachedKeys = (0, lodash_1.extend)(this._cachedKeys, keysList);
35
+ }
36
+ }
37
+ return this._cachedKeys;
38
+ }
39
+ /**
40
+ * Return one public key
41
+ * @param {number} keyId
42
+ * @return {Promise<IPublicKey>}
43
+ */
44
+ async getOne(keyId) {
45
+ if (!this._cachedKeys[keyId] || !this.isValidCache()) {
46
+ // In case of network error while getting key, return the cached one
47
+ try {
48
+ const key = await publicKeyRepository_1.publicKeyRepository.getOne(keyId);
49
+ if (key) {
50
+ this.updateNextCacheUpdate();
51
+ this._cachedKeys[keyId] = key;
52
+ }
53
+ }
54
+ catch (err) {
55
+ if (!this._cachedKeys[keyId] || !this.isTransientError(err)) {
56
+ throw err;
57
+ }
58
+ logger.error(JSON.stringify(err), `[getOne] There was an error getting key ${keyId}, cached value was sent as result`);
59
+ }
60
+ }
61
+ return this._cachedKeys[keyId];
62
+ }
63
+ /**
64
+ * Check if the error is a network error, server error or
65
+ * If true, do not throw error
66
+ * @return {boolean}
67
+ */
68
+ isTransientError(err) {
69
+ if (err instanceof src_1.ApiErrorAndInfo) {
70
+ if (err.httpStatus >= 500 || err.httpStatus === 429)
71
+ return true;
72
+ return false;
73
+ }
74
+ // No status on a superagent network error
75
+ if (!err.status)
76
+ return true;
77
+ const errStatus = +err.status;
78
+ if (errStatus >= 500 || errStatus === 429)
79
+ return true;
80
+ return false;
81
+ }
82
+ /**
83
+ * Check if the cache is stil valid
84
+ * @return {boolean}
85
+ */
86
+ isValidCache() {
87
+ if (!this._nextUpdate || moment.utc().diff(this._nextUpdate) >= 0) {
88
+ return false;
89
+ }
90
+ return true;
91
+ }
92
+ /**
93
+ * Update the date of the next update
94
+ * @return
95
+ */
96
+ updateNextCacheUpdate() {
97
+ this._nextUpdate = moment.utc().add(configs_1.configs.getCacheDuration(), 'seconds');
98
+ }
99
+ }
100
+ exports.CachedPublicKeyRepository = CachedPublicKeyRepository;
101
+ exports.cachedPublicKeyRepository = new CachedPublicKeyRepository();
102
+ //# sourceMappingURL=cachedPublicKeyRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cachedPublicKeyRepository.js","sourceRoot":"","sources":["../../../src/repositories/cachedPublicKeyRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { IPublicKey, IPublicKeys } from '../models/publicKey';
2
+ /**
3
+ * Public Key repository
4
+ */
5
+ export interface IPublicKeyRepository {
6
+ /**
7
+ * Return the last public keys
8
+ * @return {Promise<IPublicKeys>}
9
+ */
10
+ getAll(): Promise<IPublicKeys>;
11
+ /**
12
+ * Returns one public key.
13
+ * Returns null if not found.
14
+ * @param {number} keyId
15
+ * @return {Promise<IPublicKey>}
16
+ */
17
+ getOne(keyId: number): Promise<IPublicKey>;
18
+ }
19
+ export declare const publicKeyRepository: IPublicKeyRepository;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.publicKeyRepository = void 0;
4
+ const http_request_1 = require("@villedemontreal/http-request");
5
+ const lodash_1 = require("lodash");
6
+ const superagent = require("superagent");
7
+ const general_utils_1 = require("@villedemontreal/general-utils");
8
+ const configs_1 = require("../config/configs");
9
+ const constants_1 = require("../config/constants");
10
+ class PublicKeyRepository {
11
+ async getAll() {
12
+ const url = `${http_request_1.httpUtils.urlJoin(configs_1.configs.getHost(), configs_1.configs.getEndpoint())}?${configs_1.configs.getFetchKeysParameters()}`;
13
+ const request = superagent.get(url);
14
+ const response = await http_request_1.httpUtils.send(request);
15
+ if (!response.ok) {
16
+ throw new Error(`An error occured calling ${url} : ${response.error}`);
17
+ }
18
+ const data = response.body;
19
+ if (data && data.items && (0, lodash_1.isArray)(data.items)) {
20
+ const newKeys = (0, lodash_1.keyBy)(data.items, (item) => item.id);
21
+ return newKeys;
22
+ }
23
+ return null;
24
+ }
25
+ async getOne(keyId) {
26
+ const url = http_request_1.httpUtils.urlJoin(configs_1.configs.getHost(), configs_1.configs.getEndpoint(), keyId.toString());
27
+ const request = superagent.get(url);
28
+ const response = await http_request_1.httpUtils.send(request);
29
+ if (!response.ok) {
30
+ // ==========================================
31
+ // Not found: we return null
32
+ // ==========================================
33
+ if (response.status === 404) {
34
+ return null;
35
+ }
36
+ throw (0, general_utils_1.createError)(constants_1.constants.errors.codes.UNABLE_TO_GET_PUBLIC_KEY, `An error occured calling ${url} : ${response.error}`)
37
+ .httpStatus(response.status)
38
+ .build();
39
+ }
40
+ return response.body;
41
+ }
42
+ }
43
+ exports.publicKeyRepository = new PublicKeyRepository();
44
+ //# sourceMappingURL=publicKeyRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicKeyRepository.js","sourceRoot":"","sources":["../../../src/repositories/publicKeyRepository.ts"],"names":[],"mappings":";;;AAAA,gEAA0D;AAC1D,mCAAwC;AACxC,yCAAyC;AAEzC,kEAA6D;AAC7D,+CAA4C;AAC5C,mDAAgD;AAuBhD,MAAM,mBAAmB;IAChB,KAAK,CAAC,MAAM;QACjB,MAAM,GAAG,GAAG,GAAG,wBAAS,CAAC,OAAO,CAC9B,iBAAO,CAAC,OAAO,EAAE,EACjB,iBAAO,CAAC,WAAW,EAAE,CACtB,IAAI,iBAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,wBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;SACxE;QAED,MAAM,IAAI,GAAiC,QAAQ,CAAC,IAAI,CAAC;QACzD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7C,MAAM,OAAO,GAAgB,IAAA,cAAK,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAa;QAC/B,MAAM,GAAG,GAAG,wBAAS,CAAC,OAAO,CAAC,iBAAO,CAAC,OAAO,EAAE,EAAE,iBAAO,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,wBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,6CAA6C;YAC7C,4BAA4B;YAC5B,6CAA6C;YAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;YAED,MAAM,IAAA,2BAAW,EACf,qBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAC/C,4BAA4B,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CACtD;iBACE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;iBAC3B,KAAK,EAAE,CAAC;SACZ;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CACF;AAEY,QAAA,mBAAmB,GAAyB,IAAI,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import * as express from 'express';
2
+ export interface IUserValidator {
3
+ /**
4
+ * TODO commentaire pas à jour
5
+ * Verify a header containg a jwt and check the jwt with the public key and returns the decoded payload
6
+ * @param {string} userId
7
+ * @return {void}
8
+ */
9
+ isUser(userId: string): boolean;
10
+ /**
11
+ * TODO commentaire pas à jour
12
+ * Verify a header containg a jwt and check the jwt with the public key and returns the decoded payload
13
+ * @param {string} userId
14
+ * @return {void}
15
+ */
16
+ verifyUser(userId: string): void;
17
+ }
18
+ /**
19
+ * User Validator
20
+ */
21
+ export declare class UserValidator implements IUserValidator {
22
+ private _request;
23
+ /**
24
+ * Create a new instance of UserValidator
25
+ * @param {express.Request} req
26
+ */
27
+ constructor(req: express.Request);
28
+ isUser(userId: string): boolean;
29
+ verifyUser(userId: string): void;
30
+ }