@intuitionrobotics/user-account 0.43.4 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app-backend/api/_user-account.js +2 -2
- package/app-backend/api/_user-account.js.map +1 -1
- package/app-backend/api/v1/account/_assert.d.ts +3 -2
- package/app-backend/api/v1/account/_assert.js +6 -24
- package/app-backend/api/v1/account/_assert.js.map +1 -1
- package/app-backend/api/v1/account/create.js +6 -24
- package/app-backend/api/v1/account/create.js.map +1 -1
- package/app-backend/api/v1/account/list.js +6 -24
- package/app-backend/api/v1/account/list.js.map +1 -1
- package/app-backend/api/v1/account/login-saml.js +4 -22
- package/app-backend/api/v1/account/login-saml.js.map +1 -1
- package/app-backend/api/v1/account/login.js +12 -24
- package/app-backend/api/v1/account/login.js.map +1 -1
- package/app-backend/api/v1/account/logout.js +9 -26
- package/app-backend/api/v1/account/logout.js.map +1 -1
- package/app-backend/api/v1/account/upsert.js +10 -9
- package/app-backend/api/v1/account/upsert.js.map +1 -1
- package/app-backend/api/v1/account/validate.js +6 -24
- package/app-backend/api/v1/account/validate.js.map +1 -1
- package/app-backend/apis/add-new-account.d.ts +3 -3
- package/app-backend/apis/add-new-account.js +12 -24
- package/app-backend/apis/add-new-account.js.map +1 -1
- package/app-backend/core/module-pack.d.ts +0 -2
- package/app-backend/core/module-pack.js +0 -30
- package/app-backend/core/module-pack.js.map +1 -1
- package/app-backend/modules/AccountModule.d.ts +7 -4
- package/app-backend/modules/AccountModule.js +54 -64
- package/app-backend/modules/AccountModule.js.map +1 -1
- package/app-backend/modules/JWTBuilder.d.ts +1 -1
- package/app-backend/modules/JWTBuilder.js +6 -5
- package/app-backend/modules/JWTBuilder.js.map +1 -1
- package/app-backend/modules/SamlModule.d.ts +3 -2
- package/app-backend/modules/SamlModule.js +7 -5
- package/app-backend/modules/SamlModule.js.map +1 -1
- package/app-backend/modules/SecretsModule.d.ts +4 -2
- package/app-backend/modules/SecretsModule.js +28 -25
- package/app-backend/modules/SecretsModule.js.map +1 -1
- package/app-backend/modules/{_imports.d.ts → types.d.ts} +1 -2
- package/app-backend/modules/types.js +3 -0
- package/app-backend/modules/types.js.map +1 -0
- package/app-frontend/core/module-pack.d.ts +0 -1
- package/app-frontend/core/module-pack.js +0 -11
- package/app-frontend/core/module-pack.js.map +1 -1
- package/app-frontend/modules/AccountModule.d.ts +3 -2
- package/app-frontend/modules/AccountModule.js +38 -50
- package/app-frontend/modules/AccountModule.js.map +1 -1
- package/index.d.ts +0 -2
- package/index.js +0 -31
- package/index.js.map +1 -1
- package/package.json +5 -5
- package/shared/api.d.ts +1 -1
- package/shared/api.js +0 -18
- package/shared/api.js.map +1 -1
- package/shared/utils/AuthenticationConsts.js.map +1 -1
- package/app-backend/api/v1/account/_imports.d.ts +0 -4
- package/app-backend/api/v1/account/_imports.js +0 -36
- package/app-backend/api/v1/account/_imports.js.map +0 -1
- package/app-backend/modules/_imports.js +0 -32
- package/app-backend/modules/_imports.js.map +0 -1
- package/app-frontend/ui/Component_Login.d.ts +0 -21
- package/app-frontend/ui/Component_Login.js +0 -86
- package/app-frontend/ui/Component_Login.js.map +0 -1
- package/app-frontend/ui/Component_Register.d.ts +0 -17
- package/app-frontend/ui/Component_Register.js +0 -92
- package/app-frontend/ui/Component_Register.js.map +0 -1
- package/backend.d.ts +0 -2
- package/backend.js +0 -33
- package/backend.js.map +0 -1
- package/frontend.d.ts +0 -3
- package/frontend.js +0 -34
- package/frontend.js.map +0 -1
- package/shared/types.d.ts +0 -0
- package/shared/types.js +0 -20
- package/shared/types.js.map +0 -1
|
@@ -10,41 +10,31 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AccountModule = exports.AccountsModule_Class = exports.Collection_Accounts = exports.Collection_Sessions = exports.Header_SessionId = void 0;
|
|
13
|
-
/*
|
|
14
|
-
* Permissions management system, define access level for each of
|
|
15
|
-
* your server apis, and restrict users by giving them access levels
|
|
16
|
-
*
|
|
17
|
-
* Copyright (C) 2020 Intuition Robotics
|
|
18
|
-
*
|
|
19
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
20
|
-
* you may not use this file except in compliance with the License.
|
|
21
|
-
* You may obtain a copy of the License at
|
|
22
|
-
*
|
|
23
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
24
|
-
*
|
|
25
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
26
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
27
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
28
|
-
* See the License for the specific language governing permissions and
|
|
29
|
-
* limitations under the License.
|
|
30
|
-
*/
|
|
31
|
-
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
32
|
-
const backend_1 = require("@intuitionrobotics/firebase/backend");
|
|
33
|
-
const _imports_1 = require("./_imports");
|
|
34
|
-
const backend_2 = require("@intuitionrobotics/thunderstorm/backend");
|
|
35
13
|
const SecretsModule_1 = require("./SecretsModule");
|
|
36
14
|
const SamlModule_1 = require("./SamlModule");
|
|
37
|
-
const
|
|
38
|
-
|
|
15
|
+
const api_1 = require("../../shared/api");
|
|
16
|
+
const HttpServer_1 = require("@intuitionrobotics/thunderstorm/app-backend/modules/server/HttpServer");
|
|
17
|
+
const dispatcher_1 = require("@intuitionrobotics/ts-common/core/dispatcher");
|
|
18
|
+
const module_1 = require("@intuitionrobotics/ts-common/core/module");
|
|
19
|
+
const date_time_tools_1 = require("@intuitionrobotics/ts-common/utils/date-time-tools");
|
|
20
|
+
const crypto_tools_1 = require("@intuitionrobotics/ts-common/utils/crypto-tools");
|
|
21
|
+
const FirebaseModule_1 = require("@intuitionrobotics/firebase/app-backend/FirebaseModule");
|
|
22
|
+
const exceptions_1 = require("@intuitionrobotics/thunderstorm/app-backend/exceptions");
|
|
23
|
+
const validator_1 = require("@intuitionrobotics/ts-common/validator/validator");
|
|
24
|
+
const random_tools_1 = require("@intuitionrobotics/ts-common/utils/random-tools");
|
|
25
|
+
const tools_1 = require("@intuitionrobotics/ts-common/utils/tools");
|
|
26
|
+
const exceptions_2 = require("@intuitionrobotics/ts-common/core/exceptions");
|
|
27
|
+
const consts_1 = require("@intuitionrobotics/thunderstorm/shared/consts");
|
|
28
|
+
exports.Header_SessionId = new HttpServer_1.HeaderKey(api_1.HeaderKey_SessionId, 404);
|
|
39
29
|
exports.Collection_Sessions = "user-account--sessions";
|
|
40
30
|
exports.Collection_Accounts = "user-account--accounts";
|
|
41
|
-
const dispatch_onUserLogin = new
|
|
42
|
-
const dispatch_onNewUserRegistered = new
|
|
31
|
+
const dispatch_onUserLogin = new dispatcher_1.Dispatcher("__onUserLogin");
|
|
32
|
+
const dispatch_onNewUserRegistered = new dispatcher_1.Dispatcher("__onNewUserRegistered");
|
|
43
33
|
function getUIAccount(account) {
|
|
44
34
|
const { email, _id } = account;
|
|
45
35
|
return { email, _id };
|
|
46
36
|
}
|
|
47
|
-
class AccountsModule_Class extends
|
|
37
|
+
class AccountsModule_Class extends module_1.Module {
|
|
48
38
|
constructor() {
|
|
49
39
|
super("AccountsModule");
|
|
50
40
|
this.isAuthRequest = (request) => request.header(SecretsModule_1.SecretsModule.AUTHENTICATION_KEY) !== undefined;
|
|
@@ -54,9 +44,9 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
54
44
|
return yield this.validateSessionId(exports.Header_SessionId.get(request));
|
|
55
45
|
});
|
|
56
46
|
this.TTLExpired = (session) => {
|
|
57
|
-
const delta =
|
|
47
|
+
const delta = date_time_tools_1.currentTimeMillies() - session.timestamp;
|
|
58
48
|
let sessionTTLms = this.config.sessionTTLms.web;
|
|
59
|
-
if (session.frontType ===
|
|
49
|
+
if (session.frontType === api_1.FrontType.App)
|
|
60
50
|
sessionTTLms = this.config.sessionTTLms.app;
|
|
61
51
|
return delta > sessionTTLms || delta < 0;
|
|
62
52
|
};
|
|
@@ -64,8 +54,8 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
64
54
|
let session = yield this.sessions.queryUnique({ where: { userId } });
|
|
65
55
|
if (!session || this.TTLExpired(session)) {
|
|
66
56
|
session = {
|
|
67
|
-
sessionId:
|
|
68
|
-
timestamp:
|
|
57
|
+
sessionId: random_tools_1.generateHex(64),
|
|
58
|
+
timestamp: date_time_tools_1.currentTimeMillies(),
|
|
69
59
|
userId
|
|
70
60
|
};
|
|
71
61
|
if (frontType)
|
|
@@ -76,7 +66,7 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
76
66
|
const sessionId = session.sessionId;
|
|
77
67
|
return { sessionId, jwt: this.generateJWT(account, sessionId), email: account.email, _id: account._id };
|
|
78
68
|
});
|
|
79
|
-
this.setDefaultConfig({ sessionTTLms: { web:
|
|
69
|
+
this.setDefaultConfig({ sessionTTLms: { web: date_time_tools_1.Day, app: date_time_tools_1.Day, jwt: 30 * date_time_tools_1.Minute }, jwtSecretKey: "TS_AUTH_SECRET" });
|
|
80
70
|
}
|
|
81
71
|
__queryRequestInfo(request) {
|
|
82
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -93,7 +83,7 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
93
83
|
});
|
|
94
84
|
}
|
|
95
85
|
init() {
|
|
96
|
-
const firestore =
|
|
86
|
+
const firestore = FirebaseModule_1.FirebaseModule.createAdminSession(this.config.projectId).getFirestore();
|
|
97
87
|
this.sessions = firestore.getCollection(exports.Collection_Sessions, ["userId"]);
|
|
98
88
|
this.accounts = firestore.getCollection(exports.Collection_Accounts, ["email"]);
|
|
99
89
|
}
|
|
@@ -182,11 +172,11 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
182
172
|
const processor = (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
183
173
|
const account = yield transaction.queryUnique(this.accounts, { where: { email } });
|
|
184
174
|
if (!account)
|
|
185
|
-
throw new
|
|
175
|
+
throw new exceptions_1.ApiException(422, "User with email does not exist");
|
|
186
176
|
if (!account.saltedPassword || !account.salt)
|
|
187
|
-
throw new
|
|
188
|
-
account.saltedPassword =
|
|
189
|
-
account._audit =
|
|
177
|
+
throw new exceptions_1.ApiException(401, "Account login using SAML");
|
|
178
|
+
account.saltedPassword = crypto_tools_1.hashPasswordWithSalt(account.salt, newPassword);
|
|
179
|
+
account._audit = date_time_tools_1.auditBy(email, 'Changed password');
|
|
190
180
|
return transaction.upsert(this.accounts, account);
|
|
191
181
|
});
|
|
192
182
|
if (_transaction)
|
|
@@ -197,23 +187,23 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
197
187
|
createAccount(request) {
|
|
198
188
|
return __awaiter(this, void 0, void 0, function* () {
|
|
199
189
|
request.email = request.email.toLowerCase();
|
|
200
|
-
|
|
190
|
+
validator_1.validate(request.email, validator_1.validateEmail);
|
|
201
191
|
return this.accounts.runInTransaction((transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
202
192
|
const account = yield transaction.queryUnique(this.accounts, { where: { email: request.email } });
|
|
203
193
|
if (account)
|
|
204
|
-
throw new
|
|
194
|
+
throw new exceptions_1.ApiException(422, "User with email already exists");
|
|
205
195
|
return this.createImpl(request, transaction);
|
|
206
196
|
}));
|
|
207
197
|
});
|
|
208
198
|
}
|
|
209
199
|
createImpl(request, transaction) {
|
|
210
|
-
const salt =
|
|
200
|
+
const salt = random_tools_1.generateHex(32);
|
|
211
201
|
const account = {
|
|
212
|
-
_id:
|
|
213
|
-
_audit:
|
|
202
|
+
_id: random_tools_1.generateHex(32),
|
|
203
|
+
_audit: date_time_tools_1.auditBy(request.email),
|
|
214
204
|
email: request.email,
|
|
215
205
|
salt,
|
|
216
|
-
saltedPassword:
|
|
206
|
+
saltedPassword: crypto_tools_1.hashPasswordWithSalt(salt, request.password)
|
|
217
207
|
};
|
|
218
208
|
return transaction.insert(this.accounts, account);
|
|
219
209
|
}
|
|
@@ -239,13 +229,13 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
239
229
|
const query = { where: { email: request.email } };
|
|
240
230
|
const account = yield this.accounts.queryUnique(query);
|
|
241
231
|
if (!account)
|
|
242
|
-
throw new
|
|
232
|
+
throw new exceptions_1.ApiException(401, "account does not exists");
|
|
243
233
|
if (!account.saltedPassword || !account.salt)
|
|
244
|
-
throw new
|
|
245
|
-
if (account.saltedPassword !==
|
|
246
|
-
throw new
|
|
234
|
+
throw new exceptions_1.ApiException(401, "Account login using SAML");
|
|
235
|
+
if (account.saltedPassword !== crypto_tools_1.hashPasswordWithSalt(account.salt, request.password))
|
|
236
|
+
throw new exceptions_1.ApiException(401, "wrong username or password");
|
|
247
237
|
if (!account._id) {
|
|
248
|
-
account._id =
|
|
238
|
+
account._id = random_tools_1.generateHex(32);
|
|
249
239
|
yield this.accounts.upsert(account);
|
|
250
240
|
}
|
|
251
241
|
let sessionWithAccountId;
|
|
@@ -275,7 +265,7 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
275
265
|
const account = yield transaction.queryUnique(this.accounts, query);
|
|
276
266
|
if (account === null || account === void 0 ? void 0 : account._id)
|
|
277
267
|
return account;
|
|
278
|
-
const _account = Object.assign({ _id:
|
|
268
|
+
const _account = Object.assign({ _id: random_tools_1.generateHex(32), _audit: date_time_tools_1.auditBy(_email), email: _email }, account);
|
|
279
269
|
dispatchEvent = true;
|
|
280
270
|
return transaction.upsert(this.accounts, _account);
|
|
281
271
|
}));
|
|
@@ -286,13 +276,13 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
286
276
|
}
|
|
287
277
|
verifyAccount(account) {
|
|
288
278
|
if (!account)
|
|
289
|
-
throw new
|
|
279
|
+
throw new exceptions_2.BadImplementationException('Missing account in token payload');
|
|
290
280
|
const email = account['email'];
|
|
291
281
|
if (!email || typeof email !== 'string')
|
|
292
|
-
throw new
|
|
282
|
+
throw new exceptions_2.BadImplementationException('Missing email in token payload');
|
|
293
283
|
const _id = account['_id'];
|
|
294
284
|
if (!_id || typeof _id !== 'string')
|
|
295
|
-
throw new
|
|
285
|
+
throw new exceptions_2.BadImplementationException('Missing _id in token payload');
|
|
296
286
|
return { _id, email };
|
|
297
287
|
}
|
|
298
288
|
validateAuthenticationHeader(request, response) {
|
|
@@ -302,7 +292,7 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
302
292
|
const isExpired = SecretsModule_1.SecretsModule.isExpired(token);
|
|
303
293
|
const sessionId = payload.sessionId;
|
|
304
294
|
if (!sessionId)
|
|
305
|
-
throw new
|
|
295
|
+
throw new exceptions_2.BadImplementationException(`Missing session id in token ${JSON.stringify(payload)}`);
|
|
306
296
|
if (!isExpired) {
|
|
307
297
|
const account = payload.account;
|
|
308
298
|
this.verifyAccount(account);
|
|
@@ -318,13 +308,13 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
318
308
|
}
|
|
319
309
|
setJWTinResp(response, jwt) {
|
|
320
310
|
// Set in header response
|
|
321
|
-
response.setHeaders({ [
|
|
311
|
+
response.setHeaders({ [consts_1.HeaderKey_JWT]: jwt });
|
|
322
312
|
}
|
|
323
313
|
generateJWT(account, sessionId) {
|
|
324
314
|
return SecretsModule_1.SecretsModule.generateJwt({
|
|
325
315
|
account,
|
|
326
316
|
sessionId,
|
|
327
|
-
exp:
|
|
317
|
+
exp: date_time_tools_1.currentTimeMillies() + this.config.sessionTTLms.jwt
|
|
328
318
|
}, this.config.jwtSecretKey);
|
|
329
319
|
}
|
|
330
320
|
validateSessionId(sessionId) {
|
|
@@ -332,9 +322,9 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
332
322
|
const query = { where: { sessionId } };
|
|
333
323
|
const session = yield this.sessions.queryUnique(query);
|
|
334
324
|
if (!session)
|
|
335
|
-
throw new
|
|
325
|
+
throw new exceptions_1.ApiException(401, `Invalid session id: ${sessionId}`);
|
|
336
326
|
if (this.TTLExpired(session))
|
|
337
|
-
throw new
|
|
327
|
+
throw new exceptions_1.ApiException(401, "Session timed out");
|
|
338
328
|
return yield this.getUserEmailFromSession(session);
|
|
339
329
|
});
|
|
340
330
|
}
|
|
@@ -343,7 +333,7 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
343
333
|
const account = yield this.accounts.queryUnique({ where: { _id: session.userId } });
|
|
344
334
|
if (!account) {
|
|
345
335
|
yield this.sessions.deleteItem(session);
|
|
346
|
-
throw new
|
|
336
|
+
throw new exceptions_1.ApiException(403, `No user found for session: ${tools_1.__stringify(session)}`);
|
|
347
337
|
}
|
|
348
338
|
return getUIAccount(account);
|
|
349
339
|
});
|
|
@@ -355,17 +345,17 @@ class AccountsModule_Class extends ts_common_1.Module {
|
|
|
355
345
|
};
|
|
356
346
|
try {
|
|
357
347
|
const data = yield SamlModule_1.SamlModule.assert(options);
|
|
358
|
-
this.logDebug(`Got data from assertion ${
|
|
348
|
+
this.logDebug(`Got data from assertion ${tools_1.__stringify(data)}`);
|
|
359
349
|
const email = data.userId;
|
|
360
350
|
const loginData = yield exports.AccountModule.loginSAML(email);
|
|
361
|
-
let redirectUrl = data.loginContext[
|
|
362
|
-
redirectUrl = redirectUrl.replace(new RegExp(
|
|
363
|
-
redirectUrl = redirectUrl.replace(new RegExp(
|
|
364
|
-
redirectUrl = redirectUrl.replace(new RegExp(
|
|
351
|
+
let redirectUrl = data.loginContext[api_1.QueryParam_RedirectUrl];
|
|
352
|
+
redirectUrl = redirectUrl.replace(new RegExp(api_1.QueryParam_SessionId.toUpperCase(), "g"), loginData.sessionId);
|
|
353
|
+
redirectUrl = redirectUrl.replace(new RegExp(api_1.QueryParam_Email.toUpperCase(), "g"), email);
|
|
354
|
+
redirectUrl = redirectUrl.replace(new RegExp(api_1.QueryParam_JWT.toUpperCase(), "g"), loginData.jwt);
|
|
365
355
|
return yield response.redirect(302, redirectUrl);
|
|
366
356
|
}
|
|
367
357
|
catch (error) {
|
|
368
|
-
throw new
|
|
358
|
+
throw new exceptions_1.ApiException(401, 'Error authenticating user', error);
|
|
369
359
|
}
|
|
370
360
|
});
|
|
371
361
|
}
|
|
@@ -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,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
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
|
|
4
|
+
const exceptions_1 = require("@intuitionrobotics/ts-common/core/exceptions");
|
|
5
|
+
const date_time_tools_1 = require("@intuitionrobotics/ts-common/utils/date-time-tools");
|
|
5
6
|
const jws_1 = require("jws");
|
|
6
7
|
const SecretsModule_1 = require("./SecretsModule");
|
|
7
8
|
//Header
|
|
@@ -70,7 +71,7 @@ class JWTBuilder {
|
|
|
70
71
|
return this;
|
|
71
72
|
}
|
|
72
73
|
setIssuedAt() {
|
|
73
|
-
this.payload[exports.ISSUED_AT] = Math.floor(
|
|
74
|
+
this.payload[exports.ISSUED_AT] = Math.floor(date_time_tools_1.currentTimeMillies() / 1000);
|
|
74
75
|
}
|
|
75
76
|
setJWTID(jti) {
|
|
76
77
|
this.payload[exports.JWT_ID] = jti;
|
|
@@ -96,7 +97,7 @@ class JWTBuilder {
|
|
|
96
97
|
assertAlg(alg) {
|
|
97
98
|
const foundAlg = jws_1.ALGORITHMS.find(a => a === alg);
|
|
98
99
|
if (!foundAlg)
|
|
99
|
-
throw new
|
|
100
|
+
throw new exceptions_1.BadImplementationException(`Algorithm with name ${alg} is not valid`);
|
|
100
101
|
}
|
|
101
102
|
build(secret) {
|
|
102
103
|
this.setIssuedAt();
|
|
@@ -106,9 +107,9 @@ class JWTBuilder {
|
|
|
106
107
|
// TODO move the config to the module which I need to create
|
|
107
108
|
this.setIssuer(SecretsModule_1.SecretsModule.getIss());
|
|
108
109
|
if (!this.getExpiration())
|
|
109
|
-
throw new
|
|
110
|
+
throw new exceptions_1.BadImplementationException("Missing expiration, cannot build a valid JWT without this value");
|
|
110
111
|
if (!this.getAlgorithm())
|
|
111
|
-
throw new
|
|
112
|
+
throw new exceptions_1.BadImplementationException("Missing algorithm, cannot build a valid JWT without this value");
|
|
112
113
|
return jws_1.sign({ secret, payload: this.payload, header: this.header });
|
|
113
114
|
}
|
|
114
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JWTBuilder.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/JWTBuilder.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"JWTBuilder.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/JWTBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { Module } from "@intuitionrobotics/ts-common/core/module";
|
|
1
2
|
import { IdentityProvider, IdentityProviderOptions, SAMLAssertResponse, ServiceProviderOptions } from "saml2-js";
|
|
2
|
-
import {
|
|
3
|
-
import { RequestBody_SamlAssertOptions
|
|
3
|
+
import { RequestParams_LoginSAML } from "../../shared/api";
|
|
4
|
+
import { RequestBody_SamlAssertOptions } from "./types";
|
|
4
5
|
declare type SamlConfig = {
|
|
5
6
|
idConfig: IdentityProviderOptions;
|
|
6
7
|
spConfig: ServiceProviderOptions;
|
|
@@ -28,16 +28,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.SamlModule = exports.SamlModule_Class = void 0;
|
|
31
|
+
const exceptions_1 = require("@intuitionrobotics/ts-common/core/exceptions");
|
|
32
|
+
const module_1 = require("@intuitionrobotics/ts-common/core/module");
|
|
33
|
+
const tools_1 = require("@intuitionrobotics/ts-common/utils/tools");
|
|
31
34
|
const saml2_js_1 = require("saml2-js");
|
|
32
|
-
|
|
33
|
-
class SamlModule_Class extends ts_common_1.Module {
|
|
35
|
+
class SamlModule_Class extends module_1.Module {
|
|
34
36
|
constructor() {
|
|
35
37
|
super("SamlModule");
|
|
36
38
|
this.loginRequest = (loginContext) => __awaiter(this, void 0, void 0, function* () {
|
|
37
39
|
return new Promise((resolve, rejected) => {
|
|
38
40
|
const sp = new saml2_js_1.ServiceProvider(this.config.spConfig);
|
|
39
41
|
const options = {
|
|
40
|
-
relay_state:
|
|
42
|
+
relay_state: tools_1.__stringify(loginContext)
|
|
41
43
|
};
|
|
42
44
|
sp.create_login_request_url(this.identityProvider, options, (error, loginUrl, requestId) => {
|
|
43
45
|
if (error)
|
|
@@ -67,9 +69,9 @@ class SamlModule_Class extends ts_common_1.Module {
|
|
|
67
69
|
}
|
|
68
70
|
init() {
|
|
69
71
|
if (!this.config.idConfig)
|
|
70
|
-
throw new
|
|
72
|
+
throw new exceptions_1.ImplementationMissingException("Config must contain idConfig");
|
|
71
73
|
if (!this.config.spConfig)
|
|
72
|
-
throw new
|
|
74
|
+
throw new exceptions_1.ImplementationMissingException("Config must contain spConfig");
|
|
73
75
|
this.identityProvider = new saml2_js_1.IdentityProvider(this.config.idConfig);
|
|
74
76
|
}
|
|
75
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SamlModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/SamlModule.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"SamlModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/SamlModule.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;AAEH,6EAA4F;AAC5F,qEAAgE;AAChE,oEAAqE;AACrE,uCAMkB;AA+BlB,MAAa,gBACT,SAAQ,eAAkB;IAI1B;QACI,KAAK,CAAC,YAAY,CAAC,CAAC;QAaxB,iBAAY,GAAG,CAAO,YAAqC,EAAE,EAAE;YAC3D,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC7C,MAAM,EAAE,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrD,MAAM,OAAO,GAAG;oBACZ,WAAW,EAAE,mBAAW,CAAC,YAAY,CAAC;iBACzC,CAAC;gBACF,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;oBACvF,IAAI,KAAK;wBACL,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAE3B,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QAEP,CAAC,CAAA,CAAC;QAEF,WAAM,GAAG,CAAO,OAAsC,EAA+B,EAAE;YAAC,OAAA,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC1I,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;oBACzF,IAAI,KAAK;wBACL,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAE3B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;oBACrC,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;oBACpD,IAAI,CAAC,WAAW;wBACZ,OAAO,QAAQ,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAC;oBAE9E,OAAO,CAAC;wBACJ,MAAM,EAAE,MAAM;wBACd,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;wBACrC,YAAY,EAAE,QAAQ;qBACzB,CAAC,CAAC;gBACP,CAAC,CAAA,CAAC,CAAC;YACP,CAAC,CAAC,CAAA;UAAA,CAAC;IA7CH,CAAC;IAES,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACrB,MAAM,IAAI,2CAA8B,CAAC,8BAA8B,CAAC,CAAC;QAE7E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;YACrB,MAAM,IAAI,2CAA8B,CAAC,8BAA8B,CAAC,CAAC;QAE7E,IAAI,CAAC,gBAAgB,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;CAoCJ;AArDD,4CAqDC;AAEY,QAAA,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ApiException } from "@intuitionrobotics/thunderstorm/app-backend/exceptions";
|
|
2
|
+
import { ExpressRequest } from "@intuitionrobotics/thunderstorm/app-backend/utils/types";
|
|
3
|
+
import { Module } from "@intuitionrobotics/ts-common/core/module";
|
|
4
|
+
import { ObjectTS } from "@intuitionrobotics/ts-common/utils/types";
|
|
3
5
|
import * as jws from "jws";
|
|
4
6
|
import { Algorithm, Signature } from "jws";
|
|
5
7
|
export declare class TokenExpiredException extends ApiException {
|
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SecretsModule = exports.SecretsModule_Class = exports.TokenExpiredException = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const exceptions_1 = require("@intuitionrobotics/thunderstorm/app-backend/exceptions");
|
|
5
|
+
const exceptions_2 = require("@intuitionrobotics/ts-common/core/exceptions");
|
|
6
|
+
const module_1 = require("@intuitionrobotics/ts-common/core/module");
|
|
7
|
+
const date_time_tools_1 = require("@intuitionrobotics/ts-common/utils/date-time-tools");
|
|
8
|
+
const tools_1 = require("@intuitionrobotics/ts-common/utils/tools");
|
|
6
9
|
const jws = require("jws");
|
|
10
|
+
const AuthenticationConsts_1 = require("../../shared/utils/AuthenticationConsts");
|
|
7
11
|
const JWTBuilder_1 = require("./JWTBuilder");
|
|
8
|
-
|
|
9
|
-
class TokenExpiredException extends backend_1.ApiException {
|
|
12
|
+
class TokenExpiredException extends exceptions_1.ApiException {
|
|
10
13
|
constructor(message, cause) {
|
|
11
14
|
super(401, message, cause);
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
exports.TokenExpiredException = TokenExpiredException;
|
|
15
|
-
class SecretsModule_Class extends
|
|
18
|
+
class SecretsModule_Class extends module_1.Module {
|
|
16
19
|
constructor() {
|
|
17
20
|
super("SecretsModule");
|
|
18
21
|
this.DEFAULT_ISS = "TOOLS";
|
|
19
|
-
this.AUTHENTICATION_PREFIX =
|
|
20
|
-
this.AUTHENTICATION_KEY =
|
|
22
|
+
this.AUTHENTICATION_PREFIX = AuthenticationConsts_1.AUTHENTICATION_PREFIX;
|
|
23
|
+
this.AUTHENTICATION_KEY = AuthenticationConsts_1.AUTHENTICATION_KEY;
|
|
21
24
|
this.getAuthSecret = (kid) => {
|
|
22
25
|
return this.getSecret(kid);
|
|
23
26
|
};
|
|
24
27
|
this.getConfig = () => {
|
|
25
28
|
if (!this.config)
|
|
26
|
-
throw new
|
|
29
|
+
throw new exceptions_2.BadImplementationException(`Missing config, check SecretsModule's config`);
|
|
27
30
|
if (!this.config.secrets)
|
|
28
|
-
throw new
|
|
31
|
+
throw new exceptions_2.BadImplementationException(`Missing 'secrets' key in config, check SecretsModule's config`);
|
|
29
32
|
return this.config.secrets;
|
|
30
33
|
};
|
|
31
34
|
this.isExpired = (token) => {
|
|
32
|
-
return this.getExpiration(token) <
|
|
35
|
+
return this.getExpiration(token) < date_time_tools_1.currentTimeMillies();
|
|
33
36
|
};
|
|
34
37
|
this.generateJwt = (payload, kid, algorithm = "HS256") => {
|
|
35
38
|
const secret = this.getAuthSecret(kid);
|
|
36
39
|
return new JWTBuilder_1.JWTBuilder(algorithm)
|
|
37
40
|
// This is a default that can be overwritten by the claims
|
|
38
|
-
.setExpiration(Math.floor((
|
|
41
|
+
.setExpiration(Math.floor((date_time_tools_1.currentTimeMillies() + date_time_tools_1.Day) / 1000))
|
|
39
42
|
.addClaims(payload)
|
|
40
43
|
.setIssuer(this.getIss())
|
|
41
44
|
.setKeyID(secret.kid)
|
|
@@ -56,7 +59,7 @@ class SecretsModule_Class extends ts_common_1.Module {
|
|
|
56
59
|
var _a, _b;
|
|
57
60
|
const secret = ((_a = process.env) === null || _a === void 0 ? void 0 : _a[k]) || ((_b = this.getConfig()) === null || _b === void 0 ? void 0 : _b[k]);
|
|
58
61
|
if (!secret)
|
|
59
|
-
throw new
|
|
62
|
+
throw new exceptions_2.BadImplementationException(`Missing secret with key ${k} in SecretsModule`);
|
|
60
63
|
return {
|
|
61
64
|
kid: k,
|
|
62
65
|
value: secret
|
|
@@ -65,7 +68,7 @@ class SecretsModule_Class extends ts_common_1.Module {
|
|
|
65
68
|
validateRequestAndCheckExpiration(request) {
|
|
66
69
|
const token = this.validateRequest(request);
|
|
67
70
|
if (this.isExpired(token)) {
|
|
68
|
-
const cause = `The JWT passed is not valid, check. With payload: ${
|
|
71
|
+
const cause = `The JWT passed is not valid, check. With payload: ${tools_1.__stringify(token.payload)}. The JWT passed is expired`;
|
|
69
72
|
throw new TokenExpiredException(cause);
|
|
70
73
|
}
|
|
71
74
|
return token.payload;
|
|
@@ -76,49 +79,49 @@ class SecretsModule_Class extends ts_common_1.Module {
|
|
|
76
79
|
const authToken = this.extractAuthToken(request);
|
|
77
80
|
const token = this.decodeJwt(authToken);
|
|
78
81
|
if (!token)
|
|
79
|
-
throw new
|
|
82
|
+
throw new exceptions_2.BadImplementationException("Could not decode token");
|
|
80
83
|
const kid = token.header.kid || this.config.validateKeyId;
|
|
81
84
|
if (!kid)
|
|
82
|
-
throw new
|
|
85
|
+
throw new exceptions_2.BadImplementationException("Could not deduce which key to use in order to verify the token, please specify a key ID");
|
|
83
86
|
const secret = this.getAuthSecret(kid);
|
|
84
87
|
const verified = jws.verify(authToken, token.header.alg, secret.value);
|
|
85
|
-
let cause = `The JWT passed is not valid, check. With payload: ${
|
|
88
|
+
let cause = `The JWT passed is not valid, check. With payload: ${tools_1.__stringify(token.payload)}.`;
|
|
86
89
|
if (!verified)
|
|
87
|
-
throw new
|
|
90
|
+
throw new exceptions_2.BadImplementationException(cause);
|
|
88
91
|
if (!((_a = token.payload) === null || _a === void 0 ? void 0 : _a[JWTBuilder_1.EXPIRES_AT])) {
|
|
89
92
|
cause += ` The JWT is missing the expiration claim`;
|
|
90
|
-
throw new
|
|
93
|
+
throw new exceptions_2.BadImplementationException(cause);
|
|
91
94
|
}
|
|
92
95
|
return token;
|
|
93
96
|
}
|
|
94
97
|
extractAuthToken(request) {
|
|
95
98
|
const authHead = request.header(this.AUTHENTICATION_KEY);
|
|
96
99
|
if (authHead === undefined)
|
|
97
|
-
throw new
|
|
100
|
+
throw new exceptions_2.BadImplementationException("Missing Authorization header");
|
|
98
101
|
if (!authHead)
|
|
99
|
-
throw new
|
|
102
|
+
throw new exceptions_2.BadImplementationException('The Authorization header is empty');
|
|
100
103
|
const parts = authHead.split(" ");
|
|
101
104
|
if (parts.length !== 2 || parts[0] !== this.AUTHENTICATION_PREFIX)
|
|
102
|
-
throw new
|
|
105
|
+
throw new exceptions_2.BadImplementationException(`The Authorization header is malformed` + "\n"
|
|
103
106
|
+ `Value: ${authHead}` + "\n"
|
|
104
107
|
+ `Expected Value: ${this.AUTHENTICATION_PREFIX} [token]`);
|
|
105
108
|
const authToken = parts[1].trim();
|
|
106
109
|
if (!authToken)
|
|
107
|
-
throw new
|
|
110
|
+
throw new exceptions_2.BadImplementationException(`The token provided is empty`);
|
|
108
111
|
return authToken;
|
|
109
112
|
}
|
|
110
113
|
getExpiration(token) {
|
|
111
114
|
let exp = token.payload[JWTBuilder_1.EXPIRES_AT];
|
|
112
115
|
if (!exp)
|
|
113
116
|
return exp;
|
|
114
|
-
const now =
|
|
117
|
+
const now = date_time_tools_1.currentTimeMillies();
|
|
115
118
|
const cutOff = 1000000000000; // 3-3-1973 in milliseconds
|
|
116
119
|
const isInSeconds = exp < cutOff;
|
|
117
120
|
if (isInSeconds)
|
|
118
121
|
exp = exp * 1000;
|
|
119
|
-
const year = 365 *
|
|
122
|
+
const year = 365 * date_time_tools_1.Day;
|
|
120
123
|
if (exp < now - year || exp > now + (year))
|
|
121
|
-
throw new
|
|
124
|
+
throw new exceptions_2.BadImplementationException(`The JWT passed is not valid. Payload: ${tools_1.__stringify(token.payload)}.` +
|
|
122
125
|
`Malformed JWT, expiry date is not valid, check the exp format, assumed to be in ${isInSeconds ? "seconds" : "milliseconds"}`);
|
|
123
126
|
return exp;
|
|
124
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/SecretsModule.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"SecretsModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/SecretsModule.ts"],"names":[],"mappings":"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"}
|