@intuitionrobotics/user-account 0.41.76 → 0.42.2

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.
@@ -0,0 +1,6 @@
1
+ import { ApiResponse, ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { AccountApi_AssertLoginSAML, PostAssertBody } from "./_imports";
3
+ export declare class AssertSamlToken extends ServerApi<AccountApi_AssertLoginSAML> {
4
+ constructor(pathPart?: string);
5
+ protected process(request: ExpressRequest, response: ApiResponse, queryParams: {}, body: PostAssertBody): Promise<void>;
6
+ }
@@ -27,34 +27,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
27
27
  });
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.AssertSamlToken = void 0;
30
31
  const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
31
- const ts_common_1 = require("@intuitionrobotics/ts-common");
32
32
  const _imports_1 = require("./_imports");
33
33
  const thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
34
34
  class AssertSamlToken extends backend_1.ServerApi {
35
- constructor() {
36
- super(thunderstorm_1.HttpMethod.POST, "assert");
35
+ constructor(pathPart = "assert") {
36
+ super(thunderstorm_1.HttpMethod.POST, pathPart);
37
37
  }
38
38
  process(request, response, queryParams, body) {
39
39
  return __awaiter(this, void 0, void 0, function* () {
40
- const options = {
41
- request_body: body
42
- };
43
- try {
44
- const data = yield _imports_1.SamlModule.assert(options);
45
- this.logDebug(`Got data from assertion ${ts_common_1.__stringify(data)}`);
46
- const userEmail = data.userId;
47
- const { sessionId: userToken } = yield _imports_1.AccountModule.loginSAML(userEmail);
48
- let redirectUrl = data.loginContext[_imports_1.QueryParam_RedirectUrl];
49
- redirectUrl = redirectUrl.replace(new RegExp(_imports_1.QueryParam_SessionId.toUpperCase(), "g"), userToken);
50
- redirectUrl = redirectUrl.replace(new RegExp(_imports_1.QueryParam_Email.toUpperCase(), "g"), userEmail);
51
- return yield response.redirect(302, redirectUrl);
52
- }
53
- catch (error) {
54
- throw new backend_1.ApiException(401, 'Error authenticating user', error);
55
- }
40
+ return yield _imports_1.AccountModule.assertApi(body, response);
56
41
  });
57
42
  }
58
43
  }
59
- module.exports = new AssertSamlToken();
60
- //# sourceMappingURL=assert.js.map
44
+ exports.AssertSamlToken = AssertSamlToken;
45
+ //# sourceMappingURL=_assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_assert.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/account/_assert.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,qEAIiD;AACjD,yCAIoB;AACpB,kEAA2D;AAG3D,MAAa,eACZ,SAAQ,mBAAqC;IAE7C,YAAY,WAAmB,QAAQ;QACtC,KAAK,CAAC,yBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAoB;;YAC5G,OAAO,MAAM,wBAAa,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;KAAA;CACD;AAVD,0CAUC"}
@@ -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,17 @@
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, PostAssertBody, 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;
12
+ jwt: number;
11
13
  };
14
+ jwtSecretKey: string;
12
15
  };
13
16
  export declare const Collection_Sessions = "user-account--sessions";
14
17
  export declare const Collection_Accounts = "user-account--accounts";
@@ -28,10 +31,7 @@ export declare class AccountsModule_Class extends Module<Config> implements Quer
28
31
  private accounts;
29
32
  protected init(): void;
30
33
  getUser(_email: string): Promise<UI_Account | undefined>;
31
- listUsers(): Promise<{
32
- email: string;
33
- _id: string;
34
- }[]>;
34
+ listUsers(): Promise<UI_Account[]>;
35
35
  listSessions(): Promise<DB_Session[]>;
36
36
  getSession(_email: string): Promise<DB_Account | undefined>;
37
37
  querySessions(_email: string): Promise<UI_Session[] | undefined>;
@@ -46,11 +46,16 @@ export declare class AccountsModule_Class extends Module<Config> implements Quer
46
46
  private loginValidate;
47
47
  loginSAML(__email: string): Promise<Response_Auth>;
48
48
  private createSAML;
49
- validateSession(request: ExpressRequest): Promise<UI_Account>;
49
+ private isAuthRequest;
50
+ private verifyAccount;
51
+ validateAuthenticationHeader(request: ExpressRequest, response?: ApiResponse): Promise<Response_Validation>;
52
+ generateJWT(account: UI_Account, sessionId: string): string;
53
+ validateSession: (request: ExpressRequest, response?: ApiResponse | undefined) => Promise<UI_Account>;
50
54
  validateSessionId(sessionId: string): Promise<UI_Account>;
51
55
  private getUserEmailFromSession;
52
56
  private TTLExpired;
53
57
  upsertSession: (userId: string, frontType?: FrontType | undefined) => Promise<Response_Auth>;
58
+ assertApi(body: PostAssertBody, response: ApiResponse): Promise<void>;
54
59
  }
55
60
  export declare const AccountModule: AccountsModule_Class;
56
61
  export {};
@@ -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,10 @@ 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
+ const SamlModule_1 = require("./SamlModule");
38
+ exports.Header_SessionId = new backend_2.HeaderKey(_imports_1.HeaderKey_SessionId, 404);
39
+ exports.HeaderKey_JWT = 'jwt';
37
40
  exports.Collection_Sessions = "user-account--sessions";
38
41
  exports.Collection_Accounts = "user-account--accounts";
39
42
  const dispatch_onUserLogin = new ts_common_1.Dispatcher("__onUserLogin");
@@ -45,6 +48,12 @@ function getUIAccount(account) {
45
48
  class AccountsModule_Class extends ts_common_1.Module {
46
49
  constructor() {
47
50
  super();
51
+ this.isAuthRequest = (request) => request.header(SecretsModule_1.SecretsModule.AUTHENTICATION_KEY) !== undefined;
52
+ this.validateSession = (request, response) => __awaiter(this, void 0, void 0, function* () {
53
+ if (this.isAuthRequest(request))
54
+ return this.validateAuthenticationHeader(request, response);
55
+ return yield this.validateSessionId(exports.Header_SessionId.get(request));
56
+ });
48
57
  this.TTLExpired = (session) => {
49
58
  const delta = ts_common_1.currentTimeMillies() - session.timestamp;
50
59
  let sessionTTLms = this.config.sessionTTLms.web;
@@ -67,7 +76,7 @@ class AccountsModule_Class extends ts_common_1.Module {
67
76
  const account = yield this.getUserEmailFromSession(session);
68
77
  return { sessionId: session.sessionId, email: account.email, _id: account._id };
69
78
  });
70
- this.setDefaultConfig({ sessionTTLms: { web: ts_common_1.Day, app: ts_common_1.Day } });
79
+ this.setDefaultConfig({ sessionTTLms: { web: ts_common_1.Day, app: ts_common_1.Day, jwt: 30 * ts_common_1.Minute }, jwtSecretKey: "TS_AUTH_SECRET" });
71
80
  }
72
81
  __queryRequestInfo(request) {
73
82
  return __awaiter(this, void 0, void 0, function* () {
@@ -100,14 +109,12 @@ class AccountsModule_Class extends ts_common_1.Module {
100
109
  }
101
110
  listUsers() {
102
111
  return __awaiter(this, void 0, void 0, function* () {
103
- return this.accounts.getAll(["_id",
104
- "email"]);
112
+ return this.accounts.getAll(["_id", "email"]);
105
113
  });
106
114
  }
107
115
  listSessions() {
108
116
  return __awaiter(this, void 0, void 0, function* () {
109
- return this.sessions.getAll(["userId",
110
- "timestamp"]);
117
+ return this.sessions.getAll(["userId", "timestamp"]);
111
118
  });
112
119
  }
113
120
  getSession(_email) {
@@ -267,14 +274,40 @@ class AccountsModule_Class extends ts_common_1.Module {
267
274
  return toRet;
268
275
  });
269
276
  }
270
- validateSession(request) {
277
+ verifyAccount(account) {
278
+ if (!account)
279
+ throw new ts_common_1.BadImplementationException('Missing account in token payload');
280
+ const email = account['email'];
281
+ if (!email || typeof email !== 'string')
282
+ throw new ts_common_1.BadImplementationException('Missing email in token payload');
283
+ const _id = account['_id'];
284
+ if (!_id || typeof _id !== 'string')
285
+ throw new ts_common_1.BadImplementationException('Missing _id in token payload');
286
+ return { _id, email };
287
+ }
288
+ validateAuthenticationHeader(request, response) {
271
289
  return __awaiter(this, void 0, void 0, function* () {
272
- const sessionId = exports.Header_SessionId.get(request);
290
+ const token = SecretsModule_1.SecretsModule.validateRequest(request);
291
+ const payload = token.payload;
292
+ const isExpired = SecretsModule_1.SecretsModule.isExpired(token);
293
+ const sessionId = payload.sessionId;
273
294
  if (!sessionId)
274
- throw new backend_2.ApiException(404, 'Missing sessionId');
275
- return this.validateSessionId(sessionId);
295
+ throw new ts_common_1.BadImplementationException(`Missing session id in token ${JSON.stringify(payload)}`);
296
+ if (!isExpired) {
297
+ const account = payload.account;
298
+ this.verifyAccount(account);
299
+ return account;
300
+ }
301
+ const dbAccount = yield this.validateSessionId(sessionId);
302
+ // Set in header response
303
+ if (response)
304
+ response.setHeaders({ [exports.HeaderKey_JWT]: this.generateJWT(dbAccount, sessionId) });
305
+ return dbAccount;
276
306
  });
277
307
  }
308
+ generateJWT(account, sessionId) {
309
+ return SecretsModule_1.SecretsModule.generateJwt({ account, sessionId, exp: ts_common_1.currentTimeMillies() + this.config.sessionTTLms.jwt }, this.config.jwtSecretKey);
310
+ }
278
311
  validateSessionId(sessionId) {
279
312
  return __awaiter(this, void 0, void 0, function* () {
280
313
  const query = { where: { sessionId } };
@@ -296,6 +329,28 @@ class AccountsModule_Class extends ts_common_1.Module {
296
329
  return getUIAccount(account);
297
330
  });
298
331
  }
332
+ assertApi(body, response) {
333
+ return __awaiter(this, void 0, void 0, function* () {
334
+ const options = {
335
+ request_body: body
336
+ };
337
+ try {
338
+ const data = yield SamlModule_1.SamlModule.assert(options);
339
+ this.logDebug(`Got data from assertion ${ts_common_1.__stringify(data)}`);
340
+ const email = data.userId;
341
+ const { sessionId, _id } = yield exports.AccountModule.loginSAML(email);
342
+ let redirectUrl = data.loginContext[_imports_1.QueryParam_RedirectUrl];
343
+ const jwt = exports.AccountModule.generateJWT({ email, _id }, sessionId);
344
+ redirectUrl = redirectUrl.replace(new RegExp(_imports_1.QueryParam_SessionId.toUpperCase(), "g"), sessionId);
345
+ redirectUrl = redirectUrl.replace(new RegExp(_imports_1.QueryParam_Email.toUpperCase(), "g"), email);
346
+ redirectUrl = redirectUrl.replace(new RegExp(_imports_1.QueryParam_JWT.toUpperCase(), "g"), jwt);
347
+ return yield response.redirect(302, redirectUrl);
348
+ }
349
+ catch (error) {
350
+ throw new backend_2.ApiException(401, 'Error authenticating user', error);
351
+ }
352
+ });
353
+ }
299
354
  }
300
355
  exports.AccountsModule_Class = AccountsModule_Class;
301
356
  exports.AccountModule = new AccountsModule_Class();
@@ -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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"}
@@ -1,26 +1,12 @@
1
- import { IdentityProvider, IdentityProviderOptions, ServiceProviderOptions } from "saml2-js";
1
+ import { IdentityProvider, IdentityProviderOptions, SAMLAssertResponse, ServiceProviderOptions } from "saml2-js";
2
2
  import { Module } from "@intuitionrobotics/ts-common";
3
3
  import { RequestBody_SamlAssertOptions, RequestParams_LoginSAML } from "./_imports";
4
4
  declare type SamlConfig = {
5
5
  idConfig: IdentityProviderOptions;
6
6
  spConfig: ServiceProviderOptions;
7
7
  };
8
- declare type _SamlAssertResponse = {
9
- "response_header": {
10
- "version": "2.0";
11
- "destination": string;
12
- "in_response_to": string;
13
- "id": string;
14
- };
15
- "type": "authn_response";
16
- "user": {
17
- "name_id": string;
18
- "session_index": string;
19
- "attributes": {};
20
- };
21
- };
22
8
  declare type SamlAssertResponse = {
23
- fullResponse: _SamlAssertResponse;
9
+ fullResponse: SAMLAssertResponse;
24
10
  userId: string;
25
11
  loginContext: RequestParams_LoginSAML;
26
12
  };
@@ -52,11 +52,12 @@ class SamlModule_Class extends ts_common_1.Module {
52
52
  sp.post_assert(this.identityProvider, options, (error, response) => __awaiter(this, void 0, void 0, function* () {
53
53
  if (error)
54
54
  return rejected(error);
55
+ const userId = response.user.name_id;
55
56
  const relay_state = options.request_body.RelayState;
56
57
  if (!relay_state)
57
- return rejected('LoginContext lost along the way');
58
+ return rejected(`LoginContext lost along the way for userId '${userId}'`);
58
59
  resolve({
59
- userId: response.user.name_id,
60
+ userId: userId,
60
61
  loginContext: JSON.parse(relay_state),
61
62
  fullResponse: response
62
63
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SamlModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/SamlModule.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,uCAKkB;AAClB,4DAIsC;AAgCtC,MAAa,gBACZ,SAAQ,kBAAkB;IAI1B;QACC,KAAK,CAAC,YAAY,CAAC,CAAC;QAarB,iBAAY,GAAG,CAAO,YAAqC,EAAE,EAAE;YAC9D,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAChD,MAAM,EAAE,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG;oBACf,WAAW,EAAE,uBAAW,CAAC,YAAY,CAAC;iBACtC,CAAC;gBACF,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;oBAC1F,IAAI,KAAK;wBACR,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAExB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAA,CAAC;QAEF,WAAM,GAAG,CAAO,OAAsC,EAA+B,EAAE;YAAC,OAAA,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC7I,MAAM,EAAE,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrD,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAO,KAAK,EAAE,QAA6B,EAAE,EAAE;oBAC7F,IAAI,KAAK;wBACR,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAExB,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;oBACpD,IAAI,CAAC,WAAW;wBACf,OAAO,QAAQ,CAAC,iCAAiC,CAAC,CAAC;oBAEpD,OAAO,CAAC;wBACC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;wBAC7B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;wBACrC,YAAY,EAAE,QAAQ;qBACtB,CAAC,CAAC;gBACZ,CAAC,CAAA,CAAC,CAAC;YACJ,CAAC,CAAC,CAAA;UAAA,CAAC;IA5CH,CAAC;IAES,IAAI;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACxB,MAAM,IAAI,0CAA8B,CAAC,8BAA8B,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACxB,MAAM,IAAI,0CAA8B,CAAC,8BAA8B,CAAC,CAAC;QAE1E,IAAI,CAAC,gBAAgB,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;CAmCD;AApDD,4CAoDC;AAEY,QAAA,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"SamlModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/SamlModule.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,uCAMkB;AAClB,4DAIsC;AAgCtC,MAAa,gBACZ,SAAQ,kBAAkB;IAI1B;QACC,KAAK,CAAC,YAAY,CAAC,CAAC;QAarB,iBAAY,GAAG,CAAO,YAAqC,EAAE,EAAE;YAC9D,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAChD,MAAM,EAAE,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG;oBACf,WAAW,EAAE,uBAAW,CAAC,YAAY,CAAC;iBACtC,CAAC;gBACF,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;oBAC1F,IAAI,KAAK;wBACR,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAExB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAA,CAAC;QAEF,WAAM,GAAG,CAAO,OAAsC,EAA+B,EAAE;YAAC,OAAA,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC7I,MAAM,EAAE,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrD,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAO,KAAK,EAAE,QAA4B,EAAE,EAAE;oBAC5F,IAAI,KAAK;wBACR,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAExB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;oBACrC,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;oBACpD,IAAI,CAAC,WAAW;wBACf,OAAO,QAAQ,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAC;oBAE3E,OAAO,CAAC;wBACC,MAAM,EAAE,MAAM;wBACd,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;wBACrC,YAAY,EAAE,QAAQ;qBACtB,CAAC,CAAC;gBACZ,CAAC,CAAA,CAAC,CAAC;YACJ,CAAC,CAAC,CAAA;UAAA,CAAC;IA7CH,CAAC;IAES,IAAI;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACxB,MAAM,IAAI,0CAA8B,CAAC,8BAA8B,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACxB,MAAM,IAAI,0CAA8B,CAAC,8BAA8B,CAAC,CAAC;QAE1E,IAAI,CAAC,gBAAgB,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;CAoCD;AArDD,4CAqDC;AAEY,QAAA,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
package/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from "./shared/api";
2
+ export * from "./shared/modules/SecretsModule";
package/index.js CHANGED
@@ -29,4 +29,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  __exportStar(require("./shared/api"), exports);
32
+ __exportStar(require("./shared/modules/SecretsModule"), exports);
32
33
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/main/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,+CAA6B;AAC7B,iEAA+C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intuitionrobotics/user-account",
3
- "version": "0.41.76",
3
+ "version": "0.42.2",
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": "^3.0.0",
36
+ "jws": "^4.0.0",
34
37
  "moment": "^2.24.0",
35
- "saml2-js": "^2.0.5",
38
+ "saml2-js": "^3.0.1",
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",
package/shared/api.d.ts CHANGED
@@ -2,6 +2,7 @@ import { ApiWithBody, ApiWithQuery } from "@intuitionrobotics/thunderstorm";
2
2
  export declare const HeaderKey_SessionId = "x-session-id";
3
3
  export declare const HeaderKey_Email = "x-email";
4
4
  export declare const QueryParam_Email = "userEmail";
5
+ export declare const QueryParam_JWT = "jwt";
5
6
  export declare const QueryParam_SessionId = "x-session-id";
6
7
  export declare const QueryParam_RedirectUrl = "redirectUrl";
7
8
  export declare const HeaderKey_CurrentPage = "current-page";
package/shared/api.js CHANGED
@@ -18,10 +18,11 @@
18
18
  * limitations under the License.
19
19
  */
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.FrontType = exports.HeaderKey_CurrentPage = exports.QueryParam_RedirectUrl = exports.QueryParam_SessionId = exports.QueryParam_Email = exports.HeaderKey_Email = exports.HeaderKey_SessionId = void 0;
21
+ exports.FrontType = exports.HeaderKey_CurrentPage = exports.QueryParam_RedirectUrl = exports.QueryParam_SessionId = exports.QueryParam_JWT = exports.QueryParam_Email = exports.HeaderKey_Email = exports.HeaderKey_SessionId = void 0;
22
22
  exports.HeaderKey_SessionId = "x-session-id";
23
23
  exports.HeaderKey_Email = "x-email";
24
24
  exports.QueryParam_Email = "userEmail";
25
+ exports.QueryParam_JWT = "jwt";
25
26
  exports.QueryParam_SessionId = exports.HeaderKey_SessionId;
26
27
  exports.QueryParam_RedirectUrl = "redirectUrl";
27
28
  exports.HeaderKey_CurrentPage = "current-page";
package/shared/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/main/shared/api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAOU,QAAA,mBAAmB,GAAG,cAAc,CAAC;AACrC,QAAA,eAAe,GAAG,SAAS,CAAC;AAE5B,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAC/B,QAAA,oBAAoB,GAAG,2BAAmB,CAAC;AAC3C,QAAA,sBAAsB,GAAG,aAAa,CAAC;AACvC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,wBAAW,CAAA;IACX,wBAAW,CAAA;AACZ,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/main/shared/api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAOU,QAAA,mBAAmB,GAAG,cAAc,CAAC;AACrC,QAAA,eAAe,GAAG,SAAS,CAAC;AAE5B,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAC/B,QAAA,cAAc,GAAG,KAAK,CAAC;AACvB,QAAA,oBAAoB,GAAG,2BAAmB,CAAC;AAC3C,QAAA,sBAAsB,GAAG,aAAa,CAAC;AACvC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,wBAAW,CAAA;IACX,wBAAW,CAAA;AACZ,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
@@ -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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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/account/assert.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;AAEH,qEAKiD;AAEjD,4DAAyD;AACzD,yCASoB;AACpB,kEAA2D;AAG3D,MAAM,eACL,SAAQ,mBAAqC;IAE7C;QACC,KAAK,CAAC,yBAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAoB;;YAC5G,MAAM,OAAO,GAAkC;gBAC9C,YAAY,EAAE,IAAI;aAClB,CAAC;YAEF,IAAI;gBACH,MAAM,IAAI,GAAG,MAAM,qBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,2BAA2B,uBAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAE9D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC9B,MAAM,EAAC,SAAS,EAAE,SAAS,EAAC,GAAG,MAAM,wBAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAExE,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iCAAsB,CAAC,CAAC;gBAE5D,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,+BAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;gBAClG,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,2BAAgB,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;gBAE9F,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;aACjD;YAAC,OAAO,KAAK,EAAE;gBACf,MAAM,IAAI,sBAAY,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;aAChE;QACF,CAAC;KAAA;CACD;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC"}