@intuitionrobotics/user-account 0.41.75 → 0.42.1

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.
@@ -36,7 +36,7 @@ class ValidateToken extends backend_1.ServerApi {
36
36
  }
37
37
  process(request, response, queryParams, body) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const { email, _id } = yield _imports_1.AccountModule.validateSession(request);
39
+ const { email, _id } = yield _imports_1.AccountModule.validateSession(request, response);
40
40
  return { email, _id };
41
41
  });
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/account/validate.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;AAEH,qEAIiD;AAEjD,kEAA2D;AAC3D,yCAGoB;AAEpB,MAAM,aACL,SAAQ,mBAAqC;IAE7C;QACC,KAAK,CAAC,yBAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnC,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAU;;YAClG,MAAM,EAAC,KAAK,EAAE,GAAG,EAAC,GAAG,MAAM,wBAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC;QACrB,CAAC;KAAA;CACD;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/account/validate.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;AAEH,qEAIiD;AAEjD,kEAA2D;AAC3D,yCAGoB;AAEpB,MAAM,aACL,SAAQ,mBAAqC;IAE7C;QACC,KAAK,CAAC,yBAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACnC,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAU;;YAClG,MAAM,EAAC,KAAK,EAAE,GAAG,EAAC,GAAG,MAAM,wBAAa,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC5E,OAAO,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC;QACrB,CAAC;KAAA;CACD;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC"}
@@ -1,14 +1,16 @@
1
1
  import { Module } from "@intuitionrobotics/ts-common";
2
2
  import { FirestoreTransaction } from "@intuitionrobotics/firebase/backend";
3
- import { DB_Account, DB_Session, FrontType, Request_CreateAccount, Request_LoginAccount, Request_UpsertAccount, Response_Auth, UI_Account, UI_Session } from "./_imports";
4
- import { ExpressRequest, HeaderKey, QueryRequestInfo } from "@intuitionrobotics/thunderstorm/backend";
3
+ import { DB_Account, DB_Session, FrontType, Request_CreateAccount, Request_LoginAccount, Request_UpsertAccount, Response_Auth, Response_Validation, UI_Account, UI_Session } from "./_imports";
4
+ import { ApiResponse, ExpressRequest, HeaderKey, QueryRequestInfo } from "@intuitionrobotics/thunderstorm/backend";
5
5
  export declare const Header_SessionId: HeaderKey;
6
+ export declare const HeaderKey_JWT = "jwt";
6
7
  declare type Config = {
7
8
  projectId: string;
8
9
  sessionTTLms: {
9
10
  web: number;
10
11
  app: number;
11
12
  };
13
+ jwtSecretKey: string;
12
14
  };
13
15
  export declare const Collection_Sessions = "user-account--sessions";
14
16
  export declare const Collection_Accounts = "user-account--accounts";
@@ -28,10 +30,7 @@ export declare class AccountsModule_Class extends Module<Config> implements Quer
28
30
  private accounts;
29
31
  protected init(): void;
30
32
  getUser(_email: string): Promise<UI_Account | undefined>;
31
- listUsers(): Promise<{
32
- email: string;
33
- _id: string;
34
- }[]>;
33
+ listUsers(): Promise<UI_Account[]>;
35
34
  listSessions(): Promise<DB_Session[]>;
36
35
  getSession(_email: string): Promise<DB_Account | undefined>;
37
36
  querySessions(_email: string): Promise<UI_Session[] | undefined>;
@@ -46,7 +45,11 @@ export declare class AccountsModule_Class extends Module<Config> implements Quer
46
45
  private loginValidate;
47
46
  loginSAML(__email: string): Promise<Response_Auth>;
48
47
  private createSAML;
49
- validateSession(request: ExpressRequest): Promise<UI_Account>;
48
+ private isAuthRequest;
49
+ private verifyAccount;
50
+ validateAuthenticationHeader(request: ExpressRequest, response?: ApiResponse): Promise<Response_Validation>;
51
+ generateJWT(account: UI_Account, sessionId: string): string;
52
+ validateSession: (request: ExpressRequest, response?: ApiResponse | undefined) => Promise<UI_Account>;
50
53
  validateSessionId(sessionId: string): Promise<UI_Account>;
51
54
  private getUserEmailFromSession;
52
55
  private TTLExpired;
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AccountModule = exports.AccountsModule_Class = exports.Collection_Accounts = exports.Collection_Sessions = exports.Header_SessionId = void 0;
12
+ exports.AccountModule = exports.AccountsModule_Class = exports.Collection_Accounts = exports.Collection_Sessions = exports.HeaderKey_JWT = exports.Header_SessionId = void 0;
13
13
  /*
14
14
  * Permissions management system, define access level for each of
15
15
  * your server apis, and restrict users by giving them access levels
@@ -33,7 +33,9 @@ const backend_1 = require("@intuitionrobotics/firebase/backend");
33
33
  const _imports_1 = require("./_imports");
34
34
  const backend_2 = require("@intuitionrobotics/thunderstorm/backend");
35
35
  const backend_3 = require("@intuitionrobotics/db-api-generator/backend");
36
- exports.Header_SessionId = new backend_2.HeaderKey(_imports_1.HeaderKey_SessionId);
36
+ const SecretsModule_1 = require("../../shared/modules/SecretsModule");
37
+ exports.Header_SessionId = new backend_2.HeaderKey(_imports_1.HeaderKey_SessionId, 404);
38
+ exports.HeaderKey_JWT = 'jwt';
37
39
  exports.Collection_Sessions = "user-account--sessions";
38
40
  exports.Collection_Accounts = "user-account--accounts";
39
41
  const dispatch_onUserLogin = new ts_common_1.Dispatcher("__onUserLogin");
@@ -45,6 +47,12 @@ function getUIAccount(account) {
45
47
  class AccountsModule_Class extends ts_common_1.Module {
46
48
  constructor() {
47
49
  super();
50
+ this.isAuthRequest = (request) => request.header(SecretsModule_1.SecretsModule.AUTHENTICATION_KEY) !== undefined;
51
+ this.validateSession = (request, response) => __awaiter(this, void 0, void 0, function* () {
52
+ if (this.isAuthRequest(request))
53
+ return this.validateAuthenticationHeader(request, response);
54
+ return yield this.validateSessionId(exports.Header_SessionId.get(request));
55
+ });
48
56
  this.TTLExpired = (session) => {
49
57
  const delta = ts_common_1.currentTimeMillies() - session.timestamp;
50
58
  let sessionTTLms = this.config.sessionTTLms.web;
@@ -67,7 +75,7 @@ class AccountsModule_Class extends ts_common_1.Module {
67
75
  const account = yield this.getUserEmailFromSession(session);
68
76
  return { sessionId: session.sessionId, email: account.email, _id: account._id };
69
77
  });
70
- this.setDefaultConfig({ sessionTTLms: { web: ts_common_1.Day, app: ts_common_1.Day } });
78
+ this.setDefaultConfig({ sessionTTLms: { web: ts_common_1.Day, app: ts_common_1.Day }, jwtSecretKey: "TS_AUTH_SECRET" });
71
79
  }
72
80
  __queryRequestInfo(request) {
73
81
  return __awaiter(this, void 0, void 0, function* () {
@@ -100,14 +108,12 @@ class AccountsModule_Class extends ts_common_1.Module {
100
108
  }
101
109
  listUsers() {
102
110
  return __awaiter(this, void 0, void 0, function* () {
103
- return this.accounts.getAll(["_id",
104
- "email"]);
111
+ return this.accounts.getAll(["_id", "email"]);
105
112
  });
106
113
  }
107
114
  listSessions() {
108
115
  return __awaiter(this, void 0, void 0, function* () {
109
- return this.sessions.getAll(["userId",
110
- "timestamp"]);
116
+ return this.sessions.getAll(["userId", "timestamp"]);
111
117
  });
112
118
  }
113
119
  getSession(_email) {
@@ -267,14 +273,40 @@ class AccountsModule_Class extends ts_common_1.Module {
267
273
  return toRet;
268
274
  });
269
275
  }
270
- validateSession(request) {
276
+ verifyAccount(account) {
277
+ if (!account)
278
+ throw new ts_common_1.BadImplementationException('Missing account in token payload');
279
+ const email = account['email'];
280
+ if (!email || typeof email !== 'string')
281
+ throw new ts_common_1.BadImplementationException('Missing email in token payload');
282
+ const _id = account['_id'];
283
+ if (!_id || typeof _id !== 'string')
284
+ throw new ts_common_1.BadImplementationException('Missing _id in token payload');
285
+ return { _id, email };
286
+ }
287
+ validateAuthenticationHeader(request, response) {
271
288
  return __awaiter(this, void 0, void 0, function* () {
272
- const sessionId = exports.Header_SessionId.get(request);
289
+ const token = SecretsModule_1.SecretsModule.validateRequest(request);
290
+ const payload = token.payload;
291
+ const isExpired = SecretsModule_1.SecretsModule.isExpired(token);
292
+ const sessionId = payload.sessionId;
273
293
  if (!sessionId)
274
- throw new backend_2.ApiException(404, 'Missing sessionId');
275
- return this.validateSessionId(sessionId);
294
+ throw new ts_common_1.BadImplementationException(`Missing session id in token ${JSON.stringify(payload)}`);
295
+ if (!isExpired) {
296
+ const account = payload.account;
297
+ this.verifyAccount(account);
298
+ return account;
299
+ }
300
+ const resp = yield this.validateSessionId(sessionId);
301
+ // Set in header response
302
+ if (response)
303
+ response.setHeaders({ [exports.HeaderKey_JWT]: this.generateJWT(resp, sessionId) });
304
+ return resp;
276
305
  });
277
306
  }
307
+ generateJWT(account, sessionId) {
308
+ return SecretsModule_1.SecretsModule.generateJwt({ account, sessionId, exp: ts_common_1.currentTimeMillies() + (30 * ts_common_1.Minute) }, this.config.jwtSecretKey);
309
+ }
278
310
  validateSessionId(sessionId) {
279
311
  return __awaiter(this, void 0, void 0, function* () {
280
312
  const query = { where: { sessionId } };
@@ -1 +1 @@
1
- {"version":3,"file":"AccountModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/AccountModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/AccountModule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intuitionrobotics/user-account",
3
- "version": "0.41.75",
3
+ "version": "0.42.1",
4
4
  "description": "User Account",
5
5
  "keywords": [
6
6
  "IR",
@@ -30,28 +30,28 @@
30
30
  "build": "tsc"
31
31
  },
32
32
  "dependencies": {
33
- "@intuitionrobotics/ts-common": "~0.41.0",
33
+ "@intuitionrobotics/ts-common": "~0.42.0",
34
+ "@types/jws": "^3.2.4",
35
+ "@types/saml2-js": "^1.6.8",
36
+ "jws": "^4.0.0",
34
37
  "moment": "^2.24.0",
35
38
  "saml2-js": "^2.0.5",
36
39
  "xmlbuilder": "^15.1.1"
37
40
  },
38
41
  "devDependencies": {
39
- "@intuitionrobotics/db-api-generator": "~0.41.0",
40
- "@intuitionrobotics/firebase": "~0.41.0",
41
- "@intuitionrobotics/storm": "~0.41.0",
42
- "@intuitionrobotics/testelot": "~0.41.0",
43
- "@intuitionrobotics/thunderstorm": "~0.41.0",
42
+ "@intuitionrobotics/db-api-generator": "~0.42.0",
43
+ "@intuitionrobotics/firebase": "~0.42.0",
44
+ "@intuitionrobotics/storm": "~0.42.0",
45
+ "@intuitionrobotics/testelot": "~0.42.0",
46
+ "@intuitionrobotics/thunderstorm": "~0.42.0",
44
47
  "@types/express": "^4.16.1",
45
48
  "@types/history": "^4.7.2",
46
49
  "@types/react": "^16.8.7",
47
- "@types/request": "^2.48.1",
48
- "@types/saml2-js": "^1.6.8",
49
50
  "express": "^4.16.4",
50
51
  "firebase": "^9.9.1",
51
52
  "firebase-admin": "^11.0.0",
52
53
  "firebase-functions": "^3.22.0",
53
54
  "react": "^16.0.0",
54
- "request": "^2.88.0",
55
55
  "ts-node": "^8.6.2",
56
56
  "tslint": "^5.16.0",
57
57
  "typescript": "~4.1.0",
@@ -0,0 +1,38 @@
1
+ import { Module, ObjectTS } from "@intuitionrobotics/ts-common";
2
+ import { ExpressRequest } from "@intuitionrobotics/thunderstorm/backend";
3
+ import * as jws from "jws";
4
+ import { Algorithm, Signature } from "jws";
5
+ import { CustomException } from "@intuitionrobotics/ts-common/core/exceptions";
6
+ export declare class TokenExpiredException extends CustomException {
7
+ constructor(message: string, cause?: Error);
8
+ }
9
+ declare type Config = {
10
+ secrets?: {
11
+ [k: string]: any;
12
+ };
13
+ authSecretKey: string;
14
+ issuer: string;
15
+ };
16
+ declare type Secret = {
17
+ kid: string;
18
+ value: string;
19
+ };
20
+ export declare class SecretsModule_Class extends Module<Config> {
21
+ private DEFAULT_ISS;
22
+ AUTHENTICATION_PREFIX: string;
23
+ AUTHENTICATION_KEY: string;
24
+ constructor(tag?: string, name?: string);
25
+ getSecret(k: string): Secret;
26
+ getAuthSecret: (kid: string) => Secret;
27
+ private getConfig;
28
+ validateRequestAndCheckExpiration(request: ExpressRequest, keyId?: string): any;
29
+ validateRequest(request: ExpressRequest, keyId?: string): jws.Signature;
30
+ extractAuthToken(request: ExpressRequest): string;
31
+ isExpired: (token: Signature) => boolean;
32
+ getExpiration(token: Signature): any;
33
+ generateJwt: (payload: ObjectTS, kid: string, algorithm?: Algorithm) => string;
34
+ getIss: () => string;
35
+ decodeJwt: (jwt: string) => jws.Signature;
36
+ }
37
+ export declare const SecretsModule: SecretsModule_Class;
38
+ export {};
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecretsModule = exports.SecretsModule_Class = exports.TokenExpiredException = void 0;
4
+ const ts_common_1 = require("@intuitionrobotics/ts-common");
5
+ const jws = require("jws");
6
+ const JWTBuilder_1 = require("../utils/JWTBuilder");
7
+ const exceptions_1 = require("@intuitionrobotics/ts-common/core/exceptions");
8
+ class TokenExpiredException extends exceptions_1.CustomException {
9
+ constructor(message, cause) {
10
+ super(TokenExpiredException, message, cause);
11
+ }
12
+ }
13
+ exports.TokenExpiredException = TokenExpiredException;
14
+ class SecretsModule_Class extends ts_common_1.Module {
15
+ constructor(tag, name) {
16
+ super(tag, name);
17
+ this.DEFAULT_ISS = "TOOLS";
18
+ this.AUTHENTICATION_PREFIX = "Bearer";
19
+ this.AUTHENTICATION_KEY = "Authorization";
20
+ this.getAuthSecret = (kid) => {
21
+ return this.getSecret(kid);
22
+ };
23
+ this.getConfig = () => {
24
+ if (!this.config)
25
+ throw new ts_common_1.BadImplementationException(`Missing config, check SecretsModule's config`);
26
+ if (!this.config.secrets)
27
+ throw new ts_common_1.BadImplementationException(`Missing 'secrets' key in config, check SecretsModule's config`);
28
+ return this.config.secrets;
29
+ };
30
+ this.isExpired = (token) => {
31
+ return this.getExpiration(token) < ts_common_1.currentTimeMillies();
32
+ };
33
+ this.generateJwt = (payload, kid, algorithm = "HS256") => {
34
+ const secret = this.getAuthSecret(kid);
35
+ return new JWTBuilder_1.JWTBuilder(algorithm)
36
+ // This is a default that can be overwritten by the claims
37
+ .setExpiration(ts_common_1.currentTimeMillies() + ts_common_1.Day)
38
+ .addClaims(payload)
39
+ .setIssuer(this.getIss())
40
+ .setKeyID(secret.kid)
41
+ .build(secret.value);
42
+ };
43
+ this.getIss = () => {
44
+ const issuer = this.config.issuer;
45
+ if (!issuer)
46
+ return this.DEFAULT_ISS;
47
+ return issuer;
48
+ };
49
+ this.decodeJwt = (jwt) => {
50
+ return jws.decode(jwt);
51
+ };
52
+ this.setDefaultConfig({ authSecretKey: "AUTH_SECRET" });
53
+ }
54
+ getSecret(k) {
55
+ var _a, _b;
56
+ const secret = ((_a = this.getConfig()) === null || _a === void 0 ? void 0 : _a[k]) || ((_b = process.env) === null || _b === void 0 ? void 0 : _b[k]);
57
+ if (!secret)
58
+ throw new ts_common_1.BadImplementationException(`Missing secret with key ${k} in SecretsModule`);
59
+ return {
60
+ kid: k,
61
+ value: secret
62
+ };
63
+ }
64
+ validateRequestAndCheckExpiration(request, keyId) {
65
+ const token = this.validateRequest(request, keyId);
66
+ if (this.isExpired(token)) {
67
+ const cause = `The JWT passed is not valid, check. With payload: ${ts_common_1.__stringify(token.payload)}. The JWT passed is expired`;
68
+ throw new TokenExpiredException(cause);
69
+ }
70
+ return token.payload;
71
+ }
72
+ // Specify a kid to force the usage of it
73
+ validateRequest(request, keyId) {
74
+ var _a;
75
+ const authToken = this.extractAuthToken(request);
76
+ const token = this.decodeJwt(authToken);
77
+ const kid = keyId || token.header.kid;
78
+ if (!kid)
79
+ throw new ts_common_1.BadImplementationException("Could not deduce which key to use in order to verify the token, please specify a key ID");
80
+ const secret = this.getAuthSecret(kid);
81
+ const verified = jws.verify(authToken, token.header.alg, secret.value);
82
+ let cause = `The JWT passed is not valid, check. With payload: ${ts_common_1.__stringify(token.payload)}.`;
83
+ if (!verified || !token)
84
+ throw new ts_common_1.BadImplementationException(cause);
85
+ if (!((_a = token.payload) === null || _a === void 0 ? void 0 : _a[JWTBuilder_1.EXPIRES_AT])) {
86
+ cause += ` The JWT is missing the expiration claim`;
87
+ throw new ts_common_1.BadImplementationException(cause);
88
+ }
89
+ return token;
90
+ }
91
+ extractAuthToken(request) {
92
+ const authHead = request.header(this.AUTHENTICATION_KEY);
93
+ if (authHead === undefined)
94
+ throw new ts_common_1.BadImplementationException("Missing Authorization header");
95
+ if (!authHead)
96
+ throw new ts_common_1.BadImplementationException('The Authorization header is empty');
97
+ const parts = authHead.split(" ");
98
+ if (parts.length !== 2 || parts[0] !== this.AUTHENTICATION_PREFIX)
99
+ throw new ts_common_1.BadImplementationException(`The Authorization header is malformed` + "\n"
100
+ + `Value: ${authHead}` + "\n"
101
+ + `Expected Value: ${this.AUTHENTICATION_PREFIX} [token]`);
102
+ const authToken = parts[1].trim();
103
+ if (!authToken)
104
+ throw new ts_common_1.BadImplementationException(`The token provided is empty`);
105
+ return authToken;
106
+ }
107
+ getExpiration(token) {
108
+ let exp = token.payload[JWTBuilder_1.EXPIRES_AT];
109
+ if (!exp)
110
+ return exp;
111
+ const now = ts_common_1.currentTimeMillies();
112
+ const cutOff = 1000000000000; // 3-3-1973 in milliseconds
113
+ const isInSeconds = exp < cutOff;
114
+ if (isInSeconds)
115
+ exp = exp * 1000;
116
+ const year = 365 * ts_common_1.Day;
117
+ if (exp < now - year || exp > now + (year))
118
+ throw new ts_common_1.BadImplementationException(`The JWT passed is not valid. Payload: ${ts_common_1.__stringify(token.payload)}.` +
119
+ `Malformed JWT, expiry date is not valid, check the exp format, assumed to be in ${isInSeconds ? "seconds" : "milliseconds"}`);
120
+ return exp;
121
+ }
122
+ }
123
+ exports.SecretsModule_Class = SecretsModule_Class;
124
+ exports.SecretsModule = new SecretsModule_Class();
125
+ //# sourceMappingURL=SecretsModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretsModule.js","sourceRoot":"","sources":["../../../src/main/shared/modules/SecretsModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { ObjectTS } from "@intuitionrobotics/ts-common";
2
+ import { Algorithm } from "jws";
3
+ export declare type AlgType = 'alg';
4
+ export declare const ALGORITHM: AlgType;
5
+ export declare const CONTENT_TYPE = "cty";
6
+ export declare const TYPE = "typ";
7
+ export declare const KEY_ID = "kid";
8
+ export declare const ISSUER = "iss";
9
+ export declare const SUBJECT = "sub";
10
+ export declare const EXPIRES_AT = "exp";
11
+ export declare const NOT_BEFORE = "nbf";
12
+ export declare const ISSUED_AT = "iat";
13
+ export declare const JWT_ID = "jti";
14
+ export declare const AUDIENCE = "aud";
15
+ export declare const TYP_DEFAULT: string;
16
+ export declare class JWTBuilder {
17
+ private payload;
18
+ private readonly header;
19
+ constructor(alg: Algorithm);
20
+ addClaims(claims: ObjectTS): this;
21
+ addClaim(key: string, value: any): this;
22
+ addHeader(key: string, value: any): this;
23
+ setAlgorithm: (alg: Algorithm) => this;
24
+ setContentType: (cty: string) => this;
25
+ setType: (typ: string) => this;
26
+ setKeyID: (kid: string) => this;
27
+ setIssuer(iss: string): this;
28
+ setSub(iss: string): this;
29
+ setExpiration(exp: number): this;
30
+ setNotBefore(nbf: string): this;
31
+ private setIssuedAt;
32
+ setJWTID(jti: string): this;
33
+ setAudience(aud: string): this;
34
+ private getIssuer;
35
+ private getAlgorithm;
36
+ private getExpiration;
37
+ private getType;
38
+ private assertAlg;
39
+ build(secret: string): string;
40
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JWTBuilder = exports.TYP_DEFAULT = exports.AUDIENCE = exports.JWT_ID = exports.ISSUED_AT = exports.NOT_BEFORE = exports.EXPIRES_AT = exports.SUBJECT = exports.ISSUER = exports.KEY_ID = exports.TYPE = exports.CONTENT_TYPE = exports.ALGORITHM = void 0;
4
+ const ts_common_1 = require("@intuitionrobotics/ts-common");
5
+ const jws = require("jws");
6
+ const jws_1 = require("jws");
7
+ const SecretsModule_1 = require("../modules/SecretsModule");
8
+ //Header
9
+ exports.ALGORITHM = "alg";
10
+ exports.CONTENT_TYPE = "cty";
11
+ exports.TYPE = "typ";
12
+ exports.KEY_ID = "kid";
13
+ //Payload
14
+ exports.ISSUER = "iss";
15
+ exports.SUBJECT = "sub";
16
+ exports.EXPIRES_AT = "exp";
17
+ exports.NOT_BEFORE = "nbf";
18
+ exports.ISSUED_AT = "iat";
19
+ exports.JWT_ID = "jti";
20
+ exports.AUDIENCE = "aud";
21
+ exports.TYP_DEFAULT = "JWT";
22
+ class JWTBuilder {
23
+ constructor(alg) {
24
+ this.payload = {};
25
+ // End Generic
26
+ this.setAlgorithm = (alg) => {
27
+ this.assertAlg(alg);
28
+ this.header[exports.ALGORITHM] = alg;
29
+ return this;
30
+ };
31
+ this.setContentType = (cty) => {
32
+ this.header[exports.CONTENT_TYPE] = cty;
33
+ return this;
34
+ };
35
+ this.setType = (typ) => {
36
+ this.header[exports.TYPE] = typ;
37
+ return this;
38
+ };
39
+ this.setKeyID = (kid) => {
40
+ this.header[exports.KEY_ID] = kid;
41
+ return this;
42
+ };
43
+ this.assertAlg(alg);
44
+ this.header = {
45
+ [exports.ALGORITHM]: alg
46
+ };
47
+ }
48
+ // Generic
49
+ addClaims(claims) {
50
+ Object.keys(claims).forEach(k => this.addClaim(k, claims[k]));
51
+ return this;
52
+ }
53
+ addClaim(key, value) {
54
+ this.payload[key] = value;
55
+ return this;
56
+ }
57
+ addHeader(key, value) {
58
+ this.header[key] = value;
59
+ return this;
60
+ }
61
+ // Payload
62
+ setIssuer(iss) {
63
+ this.payload[exports.ISSUER] = iss;
64
+ return this;
65
+ }
66
+ setSub(iss) {
67
+ this.payload[exports.SUBJECT] = iss;
68
+ return this;
69
+ }
70
+ setExpiration(exp) {
71
+ this.payload[exports.EXPIRES_AT] = exp;
72
+ return this;
73
+ }
74
+ setNotBefore(nbf) {
75
+ this.payload[exports.NOT_BEFORE] = nbf;
76
+ return this;
77
+ }
78
+ setIssuedAt() {
79
+ this.payload[exports.ISSUED_AT] = ts_common_1.currentTimeMillies();
80
+ }
81
+ setJWTID(jti) {
82
+ this.payload[exports.JWT_ID] = jti;
83
+ return this;
84
+ }
85
+ setAudience(aud) {
86
+ this.payload[exports.AUDIENCE] = aud;
87
+ return this;
88
+ }
89
+ // End Payload
90
+ getIssuer() {
91
+ return this.payload[exports.ISSUER];
92
+ }
93
+ getAlgorithm() {
94
+ return this.header[exports.ALGORITHM];
95
+ }
96
+ getExpiration() {
97
+ return this.payload[exports.EXPIRES_AT];
98
+ }
99
+ getType() {
100
+ return this.header[exports.TYPE];
101
+ }
102
+ assertAlg(alg) {
103
+ const foundAlg = jws_1.ALGORITHMS.find(a => a === alg);
104
+ if (!foundAlg)
105
+ throw new ts_common_1.BadImplementationException(`Algorithm with name ${alg} is not valid`);
106
+ }
107
+ build(secret) {
108
+ this.setIssuedAt();
109
+ if (!this.getType())
110
+ this.setType(exports.TYP_DEFAULT);
111
+ if (!this.getIssuer())
112
+ // TODO move the config to the module which I need to create
113
+ this.setIssuer(SecretsModule_1.SecretsModule.getIss());
114
+ if (!this.getExpiration())
115
+ throw new ts_common_1.BadImplementationException("Missing expiration, cannot build a valid JWT without this value");
116
+ if (!this.getAlgorithm())
117
+ throw new ts_common_1.BadImplementationException("Missing algorithm, cannot build a valid JWT without this value");
118
+ return jws.sign({ secret, payload: this.payload, header: this.header });
119
+ }
120
+ }
121
+ exports.JWTBuilder = JWTBuilder;
122
+ //# sourceMappingURL=JWTBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JWTBuilder.js","sourceRoot":"","sources":["../../../src/main/shared/utils/JWTBuilder.ts"],"names":[],"mappings":"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"}