@node-c/domain-iam 1.0.0-alpha6 → 1.0.0-alpha61
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/dist/services/authorization/iam.authorization.definitions.d.ts +2 -0
- package/dist/services/authorization/iam.authorization.service.d.ts +10 -2
- package/dist/services/authorization/iam.authorization.service.js +110 -86
- package/dist/services/authorization/iam.authorization.service.js.map +1 -1
- package/dist/services/tokenManager/iam.tokenManager.service.js +14 -11
- package/dist/services/tokenManager/iam.tokenManager.service.js.map +1 -1
- package/dist/services/users/iam.users.definitions.d.ts +2 -2
- package/package.json +7 -7
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { GenericObject } from '@node-c/core';
|
|
2
2
|
export interface AuthorizationPoint<Id> {
|
|
3
3
|
allowedInputData?: GenericObject;
|
|
4
|
+
allowedOutputData?: GenericObject;
|
|
4
5
|
controllerNames?: string[];
|
|
5
6
|
forbiddenInputData?: GenericObject;
|
|
7
|
+
forbiddenOutputData?: GenericObject;
|
|
6
8
|
handlerNames?: string[];
|
|
7
9
|
id: Id;
|
|
8
10
|
inputDataFieldName?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainEntityService, DomainEntityServiceDefaultData, DomainFindOptions, GenericObject, PersistanceEntityService } from '@node-c/core';
|
|
2
2
|
import { AuthorizationData, AuthorizationUser, AuthorizationPoint as BaseAuthorizationPoint } from './iam.authorization.definitions';
|
|
3
3
|
export declare class IAMAuthorizationService<AuthorizationPoint extends BaseAuthorizationPoint<unknown>, Data extends DomainEntityServiceDefaultData<Partial<AuthorizationPoint>> = DomainEntityServiceDefaultData<Partial<AuthorizationPoint>>> extends DomainEntityService<AuthorizationPoint, PersistanceEntityService<AuthorizationPoint>, Data, Record<string, PersistanceEntityService<Partial<AuthorizationPoint>>> | undefined> {
|
|
4
4
|
protected persistanceAuthorizationPointsService: PersistanceEntityService<AuthorizationPoint>;
|
|
@@ -8,11 +8,19 @@ export declare class IAMAuthorizationService<AuthorizationPoint extends BaseAuth
|
|
|
8
8
|
static checkAccess(authorizationPoints: {
|
|
9
9
|
[id: number]: BaseAuthorizationPoint<unknown>;
|
|
10
10
|
}, inputData: GenericObject, user: AuthorizationUser<unknown>): {
|
|
11
|
+
authorizationPoints: {
|
|
12
|
+
[id: number]: BaseAuthorizationPoint<unknown>;
|
|
13
|
+
};
|
|
11
14
|
hasAccess: boolean;
|
|
12
15
|
inputDataToBeMutated: GenericObject;
|
|
13
16
|
};
|
|
14
17
|
static getValuesForTesting(valueToTest: unknown): unknown[];
|
|
15
|
-
mapAuthorizationPoints(moduleName: string,
|
|
18
|
+
mapAuthorizationPoints(moduleName: string, findOptions?: DomainFindOptions): Promise<AuthorizationData<unknown>>;
|
|
16
19
|
static matchInputValues(input: GenericObject, values: GenericObject): GenericObject;
|
|
20
|
+
static processOutputData(authorizationPoints: {
|
|
21
|
+
[id: number]: BaseAuthorizationPoint<unknown>;
|
|
22
|
+
}, outputData: GenericObject): {
|
|
23
|
+
outputDataToBeMutated: GenericObject;
|
|
24
|
+
};
|
|
17
25
|
static testValue(valueToTest: unknown, valueToTestAgainst: unknown): boolean;
|
|
18
26
|
}
|
|
@@ -14,9 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.IAMAuthorizationService = void 0;
|
|
16
16
|
const core_1 = require("@node-c/core");
|
|
17
|
-
const
|
|
18
|
-
const immutable_1 = __importDefault(require("immutable"));
|
|
19
|
-
const ramda_1 = require("ramda");
|
|
17
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
20
18
|
class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
21
19
|
constructor(persistanceAuthorizationPointsService, defaultMethods = [core_1.DomainMethod.Find], additionalPersistanceEntityServices) {
|
|
22
20
|
super(persistanceAuthorizationPointsService, defaultMethods, additionalPersistanceEntityServices);
|
|
@@ -25,7 +23,8 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
|
25
23
|
this.additionalPersistanceEntityServices = additionalPersistanceEntityServices;
|
|
26
24
|
}
|
|
27
25
|
static checkAccess(authorizationPoints, inputData, user) {
|
|
28
|
-
const mutatedInputData =
|
|
26
|
+
const mutatedInputData = lodash_1.default.cloneDeep(inputData);
|
|
27
|
+
const usedAuthorizationPoints = {};
|
|
29
28
|
const userPermissionsData = user.currentAuthorizationPoints;
|
|
30
29
|
let hasAccess = false;
|
|
31
30
|
let inputDataToBeMutated = {};
|
|
@@ -36,26 +35,13 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
|
36
35
|
const apData = authorizationPoints[apId];
|
|
37
36
|
const { allowedInputData, forbiddenInputData, inputDataFieldName, requiredStaticData, userFieldName } = apData;
|
|
38
37
|
const hasStaticData = requiredStaticData && Object.keys(requiredStaticData).length;
|
|
39
|
-
const innerMutatedInputData =
|
|
38
|
+
const innerMutatedInputData = lodash_1.default.cloneDeep(mutatedInputData);
|
|
40
39
|
const innerInputDataToBeMutated = {};
|
|
41
40
|
hasAccess = true;
|
|
42
|
-
if (allowedInputData && Object.keys(allowedInputData).length) {
|
|
43
|
-
const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, allowedInputData);
|
|
44
|
-
for (const key in values) {
|
|
45
|
-
innerInputDataToBeMutated[key] = values[key];
|
|
46
|
-
(0, general_tools_1.setNested)(innerMutatedInputData, key, values[key], { removeNestedFieldEscapeSign: true });
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (forbiddenInputData && Object.keys(forbiddenInputData).length) {
|
|
50
|
-
const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, forbiddenInputData);
|
|
51
|
-
for (const key in values) {
|
|
52
|
-
innerInputDataToBeMutated[key] = undefined;
|
|
53
|
-
(0, general_tools_1.setNested)(innerMutatedInputData, key, undefined, { removeNestedFieldEscapeSign: true });
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
41
|
if (hasStaticData) {
|
|
57
42
|
for (const fieldName in requiredStaticData) {
|
|
58
|
-
if (!IAMAuthorizationService.testValue((0,
|
|
43
|
+
if (!IAMAuthorizationService.testValue((0, core_1.getNested)({ inputData: innerMutatedInputData, user }, fieldName, { removeNestedFieldEscapeSign: true })
|
|
44
|
+
.unifiedValue, requiredStaticData[fieldName])) {
|
|
59
45
|
hasAccess = false;
|
|
60
46
|
break;
|
|
61
47
|
}
|
|
@@ -65,49 +51,55 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
|
65
51
|
}
|
|
66
52
|
}
|
|
67
53
|
if (userFieldName && inputDataFieldName) {
|
|
68
|
-
const inputFieldValue = (0,
|
|
54
|
+
const { paths: inputFieldPaths, unifiedValue: inputFieldValue } = (0, core_1.getNested)(innerMutatedInputData, inputDataFieldName, {
|
|
69
55
|
removeNestedFieldEscapeSign: true
|
|
70
56
|
});
|
|
71
|
-
const userFieldValue = (0,
|
|
72
|
-
if (typeof userFieldValue === 'undefined'
|
|
57
|
+
const { unifiedValue: userFieldValue } = (0, core_1.getNested)(user, userFieldName, { removeNestedFieldEscapeSign: true });
|
|
58
|
+
if (typeof userFieldValue === 'undefined') {
|
|
73
59
|
hasAccess = false;
|
|
74
60
|
continue;
|
|
75
61
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
62
|
+
if (typeof inputFieldValue === 'undefined') {
|
|
63
|
+
innerInputDataToBeMutated[inputDataFieldName] = userFieldValue;
|
|
64
|
+
(0, core_1.setNested)(innerMutatedInputData, inputDataFieldName, userFieldValue, {
|
|
65
|
+
removeNestedFieldEscapeSign: true,
|
|
66
|
+
setNestedArraysPerIndex: inputFieldPaths.length > 1
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const allowedValues = IAMAuthorizationService.matchInputValues(innerMutatedInputData, {
|
|
71
|
+
[userFieldName]: userFieldValue
|
|
72
|
+
});
|
|
73
|
+
const inputValueIsArray = inputFieldValue instanceof Array;
|
|
74
|
+
if (!allowedValues.length) {
|
|
75
|
+
hasAccess = false;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (inputValueIsArray) {
|
|
79
|
+
innerInputDataToBeMutated[inputDataFieldName] = allowedValues;
|
|
80
|
+
(0, core_1.setNested)(innerMutatedInputData, inputDataFieldName, allowedValues, { removeNestedFieldEscapeSign: true });
|
|
96
81
|
}
|
|
97
|
-
});
|
|
98
|
-
if (!allowedValues.length) {
|
|
99
|
-
hasAccess = false;
|
|
100
|
-
continue;
|
|
101
82
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
83
|
+
}
|
|
84
|
+
if (allowedInputData && Object.keys(allowedInputData).length) {
|
|
85
|
+
const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, allowedInputData);
|
|
86
|
+
for (const key in values) {
|
|
87
|
+
innerInputDataToBeMutated[key] = values[key];
|
|
88
|
+
(0, core_1.setNested)(innerMutatedInputData, key, values[key], { removeNestedFieldEscapeSign: true });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (forbiddenInputData && Object.keys(forbiddenInputData).length) {
|
|
92
|
+
const values = IAMAuthorizationService.matchInputValues(innerMutatedInputData, forbiddenInputData);
|
|
93
|
+
for (const key in values) {
|
|
94
|
+
innerInputDataToBeMutated[key] = undefined;
|
|
95
|
+
(0, core_1.setNested)(innerMutatedInputData, key, undefined, { removeNestedFieldEscapeSign: true });
|
|
105
96
|
}
|
|
106
97
|
}
|
|
107
|
-
inputDataToBeMutated =
|
|
98
|
+
inputDataToBeMutated = lodash_1.default.merge(inputDataToBeMutated, innerInputDataToBeMutated);
|
|
99
|
+
usedAuthorizationPoints[apId] = apData;
|
|
108
100
|
break;
|
|
109
101
|
}
|
|
110
|
-
return { hasAccess, inputDataToBeMutated };
|
|
102
|
+
return { authorizationPoints: usedAuthorizationPoints, hasAccess, inputDataToBeMutated };
|
|
111
103
|
}
|
|
112
104
|
static getValuesForTesting(valueToTest) {
|
|
113
105
|
const values = [
|
|
@@ -123,12 +115,16 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
|
123
115
|
}
|
|
124
116
|
return values;
|
|
125
117
|
}
|
|
126
|
-
mapAuthorizationPoints(moduleName,
|
|
118
|
+
mapAuthorizationPoints(moduleName, findOptions) {
|
|
127
119
|
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
-
const { result: { items: apList } } = yield this.find(Object.assign(Object.assign({}, (
|
|
120
|
+
const { result: { items: apList } } = yield this.find(Object.assign(Object.assign({}, (findOptions || {})), { findAll: true }));
|
|
129
121
|
const authorizationData = { __all: { __all: {} } };
|
|
130
122
|
const moduleGlobalData = authorizationData.__all.__all;
|
|
131
123
|
apList.forEach(item => {
|
|
124
|
+
var _a;
|
|
125
|
+
if (item.moduleNames && !((_a = item.moduleNames) === null || _a === void 0 ? void 0 : _a.includes(moduleName))) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
132
128
|
if (!item.controllerNames) {
|
|
133
129
|
moduleGlobalData[item.id] = item;
|
|
134
130
|
return;
|
|
@@ -157,55 +153,83 @@ class IAMAuthorizationService extends core_1.DomainEntityService {
|
|
|
157
153
|
});
|
|
158
154
|
}
|
|
159
155
|
static matchInputValues(input, values) {
|
|
160
|
-
const
|
|
156
|
+
const matchedValues = {};
|
|
161
157
|
for (const fieldName in values) {
|
|
162
|
-
const
|
|
158
|
+
const { paths: valuePaths, values: foundValues } = (0, core_1.getNested)(input, fieldName, {
|
|
159
|
+
removeNestedFieldEscapeSign: true
|
|
160
|
+
});
|
|
163
161
|
const allowedValue = values[fieldName];
|
|
164
162
|
const allowedValues = allowedValue instanceof Array ? allowedValue : [allowedValue];
|
|
165
|
-
let valueIsArray = false;
|
|
166
|
-
let valuesToCheck = [];
|
|
167
163
|
const valuesToSet = [];
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
valueIsArray =
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
164
|
+
valuePaths.forEach((valuePath, valuePathIndex) => {
|
|
165
|
+
const valueAtIndex = foundValues[valuePathIndex];
|
|
166
|
+
let valueIsArray = false;
|
|
167
|
+
let valuesToCheck = [];
|
|
168
|
+
if (valueAtIndex instanceof Array) {
|
|
169
|
+
valuesToCheck = valueAtIndex;
|
|
170
|
+
valueIsArray = true;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
valuesToCheck.push(valueAtIndex);
|
|
174
|
+
}
|
|
175
|
+
valuesToCheck.forEach(valueToCheck => {
|
|
180
176
|
for (const j in allowedValues) {
|
|
181
|
-
if (IAMAuthorizationService.testValue(
|
|
177
|
+
if (IAMAuthorizationService.testValue(valueToCheck, allowedValues[j])) {
|
|
182
178
|
valuesToSet.push(valueToCheck);
|
|
183
|
-
checkPassed = true;
|
|
184
179
|
break;
|
|
185
180
|
}
|
|
186
181
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
182
|
+
});
|
|
183
|
+
if (!valuesToSet.length) {
|
|
184
|
+
matchedValues[valuePath] = undefined;
|
|
185
|
+
return;
|
|
190
186
|
}
|
|
187
|
+
matchedValues[valuePath] = valueIsArray ? valuesToSet : valuesToSet[0];
|
|
191
188
|
});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
189
|
+
}
|
|
190
|
+
return matchedValues;
|
|
191
|
+
}
|
|
192
|
+
static processOutputData(authorizationPoints, outputData) {
|
|
193
|
+
const mutatedOutputData = lodash_1.default.cloneDeep(outputData);
|
|
194
|
+
let outputDataToBeMutated = {};
|
|
195
|
+
for (const apId in authorizationPoints) {
|
|
196
|
+
const apData = authorizationPoints[apId];
|
|
197
|
+
const { allowedOutputData, forbiddenOutputData } = apData;
|
|
198
|
+
const innerMutatedOutputData = lodash_1.default.cloneDeep(mutatedOutputData);
|
|
199
|
+
const innerOutputDataToBeMutated = {};
|
|
200
|
+
if (allowedOutputData && Object.keys(allowedOutputData).length) {
|
|
201
|
+
const values = IAMAuthorizationService.matchInputValues(innerMutatedOutputData, allowedOutputData);
|
|
202
|
+
for (const key in values) {
|
|
203
|
+
innerOutputDataToBeMutated[key] = values[key];
|
|
204
|
+
(0, core_1.setNested)(innerMutatedOutputData, key, values[key], { removeNestedFieldEscapeSign: true });
|
|
205
|
+
}
|
|
195
206
|
}
|
|
196
|
-
(
|
|
197
|
-
|
|
198
|
-
|
|
207
|
+
if (forbiddenOutputData && Object.keys(forbiddenOutputData).length) {
|
|
208
|
+
const values = IAMAuthorizationService.matchInputValues(innerMutatedOutputData, forbiddenOutputData);
|
|
209
|
+
for (const key in values) {
|
|
210
|
+
innerOutputDataToBeMutated[key] = undefined;
|
|
211
|
+
(0, core_1.setNested)(innerMutatedOutputData, key, undefined, { removeNestedFieldEscapeSign: true });
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
outputDataToBeMutated = lodash_1.default.merge(outputDataToBeMutated, innerOutputDataToBeMutated);
|
|
199
215
|
}
|
|
200
|
-
return
|
|
216
|
+
return { outputDataToBeMutated };
|
|
201
217
|
}
|
|
202
218
|
static testValue(valueToTest, valueToTestAgainst) {
|
|
203
|
-
if (typeof
|
|
204
|
-
typeof valueToTestAgainst === 'string' &&
|
|
219
|
+
if (typeof valueToTestAgainst === 'string' &&
|
|
205
220
|
valueToTestAgainst.charAt(0) === '/' &&
|
|
206
221
|
valueToTestAgainst.charAt(valueToTestAgainst.length - 1) === '/') {
|
|
207
|
-
const regex = new RegExp(valueToTestAgainst.substring(1, valueToTestAgainst.length -
|
|
208
|
-
|
|
222
|
+
const regex = new RegExp(valueToTestAgainst.substring(1, valueToTestAgainst.length - 1));
|
|
223
|
+
if (typeof valueToTest === 'undefined') {
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
return regex.test(typeof valueToTest === 'string' ? valueToTest : JSON.stringify(valueToTest));
|
|
227
|
+
}
|
|
228
|
+
if (typeof valueToTest === 'object' &&
|
|
229
|
+
valueToTest !== null &&
|
|
230
|
+
typeof valueToTestAgainst === 'object' &&
|
|
231
|
+
valueToTestAgainst !== null) {
|
|
232
|
+
return JSON.stringify(valueToTest) === JSON.stringify(valueToTestAgainst);
|
|
209
233
|
}
|
|
210
234
|
const possibleValidValues = IAMAuthorizationService.getValuesForTesting(valueToTest);
|
|
211
235
|
let hasMatch = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iam.authorization.service.js","sourceRoot":"","sources":["../../../src/services/authorization/iam.authorization.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"iam.authorization.service.js","sourceRoot":"","sources":["../../../src/services/authorization/iam.authorization.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,15 +52,18 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
52
52
|
}
|
|
53
53
|
return t;
|
|
54
54
|
};
|
|
55
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
56
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
57
|
+
};
|
|
55
58
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
59
|
exports.IAMTokenManagerService = void 0;
|
|
57
60
|
const core_1 = require("@node-c/core");
|
|
58
|
-
const general_tools_1 = require("@ramster/general-tools");
|
|
59
61
|
const jwt = __importStar(require("jsonwebtoken"));
|
|
62
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
60
63
|
const iam_tokenManager_definitions_1 = require("./iam.tokenManager.definitions");
|
|
61
64
|
class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
62
65
|
constructor(configProvider, moduleName, persistanceEntityService) {
|
|
63
|
-
super(persistanceEntityService, ['create']);
|
|
66
|
+
super(persistanceEntityService, ['create', 'delete']);
|
|
64
67
|
this.configProvider = configProvider;
|
|
65
68
|
this.moduleName = moduleName;
|
|
66
69
|
this.persistanceEntityService = persistanceEntityService;
|
|
@@ -110,11 +113,11 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
110
113
|
const objectToSave = Object.assign(Object.assign({}, tokenData), { token, type });
|
|
111
114
|
if (persist && persistanceEntityService) {
|
|
112
115
|
if (purgeOldFromPersistance && identifierDataField) {
|
|
113
|
-
const identifierValue =
|
|
116
|
+
const identifierValue = lodash_1.default.get(data, identifierDataField);
|
|
114
117
|
if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
|
|
115
118
|
yield persistanceEntityService.delete({
|
|
116
|
-
filters: { [identifierDataField]: identifierValue }
|
|
117
|
-
});
|
|
119
|
+
filters: { [identifierDataField]: identifierValue, type }
|
|
120
|
+
}, { requirePrimaryKeys: false });
|
|
118
121
|
}
|
|
119
122
|
}
|
|
120
123
|
yield _super.create.call(this, objectToSave, { ttl: signOptions.expiresIn });
|
|
@@ -128,7 +131,7 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
128
131
|
const moduleConfig = configProvider.config.domain[moduleName];
|
|
129
132
|
const { deleteFromStoreIfExpired, identifierDataField, newTokenExpiresInMinutes, persistNewToken, purgeStoreOnRenew, refreshToken, refreshTokenAccessTokenIdentifierDataField } = options || {};
|
|
130
133
|
const { content, error } = yield this.verify(token, moduleConfig.jwtAccessSecret);
|
|
131
|
-
let forceRenew =
|
|
134
|
+
let forceRenew = false;
|
|
132
135
|
let newToken;
|
|
133
136
|
if (error) {
|
|
134
137
|
let errorToThrow;
|
|
@@ -143,23 +146,23 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
|
|
|
143
146
|
errorToThrow = new core_1.ApplicationError('Empty refresh token.');
|
|
144
147
|
}
|
|
145
148
|
else {
|
|
146
|
-
const refreshTokenCheckValue =
|
|
149
|
+
const refreshTokenCheckValue = lodash_1.default.get(content.data, refreshTokenAccessTokenIdentifierDataField);
|
|
147
150
|
if (refreshTokenCheckValue !== refreshToken) {
|
|
148
151
|
errorToThrow = new core_1.ApplicationError('Mismatched refresh token.');
|
|
149
152
|
}
|
|
150
153
|
else {
|
|
151
|
-
forceRenew =
|
|
154
|
+
forceRenew = true;
|
|
152
155
|
throwError = false;
|
|
153
156
|
}
|
|
154
157
|
}
|
|
155
158
|
}
|
|
156
159
|
else {
|
|
157
160
|
if (deleteFromStoreIfExpired) {
|
|
158
|
-
const identifierValue =
|
|
161
|
+
const identifierValue = lodash_1.default.get(content.data, identifierDataField);
|
|
159
162
|
if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
|
|
160
163
|
yield persistanceEntityService.delete({
|
|
161
|
-
filters: { [identifierDataField]: identifierValue }
|
|
162
|
-
});
|
|
164
|
+
filters: { [identifierDataField]: identifierValue, type: iam_tokenManager_definitions_1.TokenType.Access }
|
|
165
|
+
}, { requirePrimaryKeys: false });
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
errorToThrow = new core_1.ApplicationError('Expired access token.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iam.tokenManager.service.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"iam.tokenManager.service.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GenericObject } from '@node-c/core';
|
|
1
|
+
import { DomainFindOnePrivateOptions, GenericObject } from '@node-c/core';
|
|
2
2
|
import { UserAuthType, UserMFAType } from '../authentication';
|
|
3
3
|
import { AuthorizationPoint } from '../authorization';
|
|
4
4
|
export interface CreateAccessTokenOptions<AuthData = unknown> {
|
|
@@ -15,7 +15,7 @@ export interface CreateAccessTokenReturnData<UserData> {
|
|
|
15
15
|
refreshToken: string;
|
|
16
16
|
user: UserData;
|
|
17
17
|
}
|
|
18
|
-
export interface GetUserWithPermissionsDataOptions {
|
|
18
|
+
export interface GetUserWithPermissionsDataOptions extends DomainFindOnePrivateOptions {
|
|
19
19
|
keepPassword?: boolean;
|
|
20
20
|
}
|
|
21
21
|
export type UserWithPermissionsData<UserData, AuthorizationPointId> = {
|
package/package.json
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-c/domain-iam",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-alpha61",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc -p tsconfig.build.json",
|
|
8
|
+
"build:clean": "rm -rf dist/* && rm -f *.tsbuildinfo && npm run build",
|
|
8
9
|
"check-types": "tsc -p tsconfig.build.json --noEmit",
|
|
9
10
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
10
|
-
"publish-package": "
|
|
11
|
+
"publish-package": "npm run build:clean && npm publish --access public",
|
|
11
12
|
"test": "vitest --config src/vitest.config.ts",
|
|
12
13
|
"test:coverage": "vitest --config src/vitest.config.ts --coverage"
|
|
13
14
|
},
|
|
14
15
|
"dependencies": {
|
|
15
16
|
"@nestjs/common": "^10.4.12",
|
|
16
|
-
"@node-c/core": "^1.0.0-
|
|
17
|
-
"@ramster/general-tools": "^2.3.0",
|
|
18
|
-
"immutable": "^5.0.3",
|
|
17
|
+
"@node-c/core": "^1.0.0-alpha61",
|
|
19
18
|
"jsonwebtoken": "^9.0.2",
|
|
20
|
-
"
|
|
19
|
+
"lodash": "^4.17.21"
|
|
21
20
|
},
|
|
22
21
|
"devDependencies": {
|
|
23
|
-
"@types/jsonwebtoken": "^9.0.8"
|
|
22
|
+
"@types/jsonwebtoken": "^9.0.8",
|
|
23
|
+
"@types/lodash": "^4.17.19"
|
|
24
24
|
}
|
|
25
25
|
}
|