@node-c/domain-iam 1.0.0-beta6 → 1.0.0-beta8
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/common/definitions/common.constants.d.ts +13 -9
- package/dist/common/definitions/common.constants.js +13 -10
- package/dist/common/definitions/common.constants.js.map +1 -1
- package/dist/services/authentication/iam.authentication.definitions.d.ts +11 -2
- package/dist/services/authentication/iam.authentication.definitions.js +1 -1
- package/dist/services/authentication/iam.authentication.service.d.ts +9 -4
- package/dist/services/authentication/iam.authentication.service.js +95 -4
- package/dist/services/authentication/iam.authentication.service.js.map +1 -1
- package/dist/services/authenticationConsumer/iam.authenticationConsumer.definitions.d.ts +15 -0
- package/dist/services/authenticationConsumer/iam.authenticationConsumer.definitions.js +3 -0
- package/dist/services/authenticationConsumer/iam.authenticationConsumer.definitions.js.map +1 -0
- package/dist/services/authenticationConsumer/iam.authenticationConsumer.service.d.ts +12 -0
- package/dist/services/authenticationConsumer/iam.authenticationConsumer.service.js +135 -0
- package/dist/services/authenticationConsumer/iam.authenticationConsumer.service.js.map +1 -0
- package/dist/services/authenticationConsumer/index.d.ts +2 -0
- package/dist/services/authenticationConsumer/index.js +19 -0
- package/dist/services/authenticationConsumer/index.js.map +1 -0
- package/dist/services/{userManager/iam.userManager.definitions.d.ts → authenticationManager/iam.authenticationManager.definitions.d.ts} +11 -15
- package/dist/services/authenticationManager/iam.authenticationManager.definitions.js +8 -0
- package/dist/services/authenticationManager/iam.authenticationManager.definitions.js.map +1 -0
- package/dist/services/authenticationManager/iam.authenticationManager.service.d.ts +33 -0
- package/dist/services/{userManager/iam.userManager.service.js → authenticationManager/iam.authenticationManager.service.js} +140 -72
- package/dist/services/authenticationManager/iam.authenticationManager.service.js.map +1 -0
- package/dist/services/authenticationManager/index.d.ts +2 -0
- package/dist/services/authenticationManager/index.js +19 -0
- package/dist/services/authenticationManager/index.js.map +1 -0
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.d.ts +5 -2
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.d.ts +2 -14
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js +53 -95
- package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js.map +1 -1
- package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.d.ts +19 -0
- package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.js +3 -0
- package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.js.map +1 -0
- package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.d.ts +11 -0
- package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.js +69 -0
- package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.js.map +1 -0
- package/dist/services/authenticationOAuth2Consumer/index.d.ts +2 -0
- package/dist/services/authenticationOAuth2Consumer/index.js +19 -0
- package/dist/services/authenticationOAuth2Consumer/index.js.map +1 -0
- package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.d.ts +14 -0
- package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.js +3 -0
- package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.js.map +1 -0
- package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.service.d.ts +9 -0
- package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.service.js +70 -0
- package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.service.js.map +1 -0
- package/dist/services/authenticationPassthrough/index.d.ts +2 -0
- package/dist/services/authenticationPassthrough/index.js +19 -0
- package/dist/services/authenticationPassthrough/index.js.map +1 -0
- package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.d.ts +18 -0
- package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.js +3 -0
- package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.js.map +1 -0
- package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.d.ts +10 -0
- package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.js +68 -0
- package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.js.map +1 -0
- package/dist/services/authenticationPassthroughConsumer/index.d.ts +2 -0
- package/dist/services/authenticationPassthroughConsumer/index.js +19 -0
- package/dist/services/authenticationPassthroughConsumer/index.js.map +1 -0
- package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.d.ts +2 -2
- package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.d.ts +2 -6
- package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js +4 -8
- package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js.map +1 -1
- package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.d.ts +8 -0
- package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.js +3 -0
- package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.js.map +1 -0
- package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.d.ts +8 -0
- package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.js +36 -0
- package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.js.map +1 -0
- package/dist/services/authenticationUserLocalConsumer/index.d.ts +2 -0
- package/dist/services/authenticationUserLocalConsumer/index.js +19 -0
- package/dist/services/authenticationUserLocalConsumer/index.js.map +1 -0
- package/dist/services/authorization/iam.authorization.definitions.d.ts +24 -24
- package/dist/services/authorization/iam.authorization.definitions.js +7 -7
- package/dist/services/authorization/iam.authorization.definitions.js.map +1 -1
- package/dist/services/authorization/iam.authorization.service.d.ts +8 -11
- package/dist/services/authorization/iam.authorization.service.js +26 -30
- package/dist/services/authorization/iam.authorization.service.js.map +1 -1
- package/dist/services/index.d.ts +7 -1
- package/dist/services/index.js +7 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/tokenManager/iam.tokenManager.definitions.d.ts +4 -1
- package/dist/services/tokenManager/iam.tokenManager.definitions.js.map +1 -1
- package/dist/services/tokenManager/iam.tokenManager.service.d.ts +2 -2
- package/dist/services/tokenManager/iam.tokenManager.service.js +73 -35
- package/dist/services/tokenManager/iam.tokenManager.service.js.map +1 -1
- package/dist/services/users/index.d.ts +2 -0
- package/dist/services/{userManager → users}/index.js +2 -2
- package/dist/services/users/index.js.map +1 -0
- package/dist/services/users/users.definitions.d.ts +7 -0
- package/dist/services/users/users.definitions.js +3 -0
- package/dist/services/users/users.definitions.js.map +1 -0
- package/dist/services/users/users.service.d.ts +6 -0
- package/dist/services/users/users.service.js +39 -0
- package/dist/services/users/users.service.js.map +1 -0
- package/package.json +2 -2
- package/src/common/definitions/common.constants.ts +13 -16
- package/src/services/authentication/iam.authentication.definitions.ts +11 -4
- package/src/services/authentication/iam.authentication.service.ts +79 -15
- package/src/services/authenticationConsumer/iam.authenticationConsumer.definitions.ts +43 -0
- package/src/services/authenticationConsumer/iam.authenticationConsumer.service.ts +192 -0
- package/src/services/authenticationConsumer/index.ts +2 -0
- package/src/services/{userManager/iam.userManager.definitions.ts → authenticationManager/iam.authenticationManager.definitions.ts} +11 -19
- package/src/services/{userManager/iam.userManager.service.ts → authenticationManager/iam.authenticationManager.service.ts} +174 -111
- package/src/services/authenticationManager/index.ts +2 -0
- package/src/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.ts +6 -3
- package/src/services/authenticationOAuth2/iam.authenticationOAuth2.service.ts +97 -85
- package/src/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.ts +56 -0
- package/src/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.ts +93 -0
- package/src/services/authenticationOAuth2Consumer/index.ts +2 -0
- package/src/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.ts +32 -0
- package/src/services/authenticationPassthrough/iam.authenticationPassthrough.service.ts +100 -0
- package/src/services/authenticationPassthrough/index.ts +2 -0
- package/src/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.ts +52 -0
- package/src/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.ts +96 -0
- package/src/services/authenticationPassthroughConsumer/index.ts +2 -0
- package/src/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.ts +3 -3
- package/src/services/authenticationUserLocal/iam.authenticationUserLocal.service.ts +17 -12
- package/src/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.ts +29 -0
- package/src/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.ts +40 -0
- package/src/services/authenticationUserLocalConsumer/index.ts +2 -0
- package/src/services/authorization/iam.authorization.definitions.ts +26 -27
- package/src/services/authorization/iam.authorization.service.ts +40 -65
- package/src/services/index.ts +7 -1
- package/src/services/tokenManager/iam.tokenManager.definitions.ts +4 -1
- package/src/services/tokenManager/iam.tokenManager.service.ts +98 -45
- package/src/services/users/index.ts +2 -0
- package/src/services/users/users.definitions.ts +11 -0
- package/src/services/users/users.service.ts +46 -0
- package/dist/services/userManager/iam.userManager.definitions.js +0 -8
- package/dist/services/userManager/iam.userManager.definitions.js.map +0 -1
- package/dist/services/userManager/iam.userManager.service.d.ts +0 -33
- package/dist/services/userManager/iam.userManager.service.js.map +0 -1
- package/dist/services/userManager/index.d.ts +0 -2
- package/dist/services/userManager/index.js.map +0 -1
- package/src/services/userManager/index.ts +0 -2
|
@@ -30,13 +30,12 @@ import { IAMAuthenticationService, IAMAuthenticationType } from '../authenticati
|
|
|
30
30
|
import { IAMAuthenticationOAuth2Service } from '../authenticationOAuth2';
|
|
31
31
|
import { IAMAuthenticationUserLocalService } from '../authenticationUserLocal';
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
/**
|
|
34
34
|
* Service for managing local access and refresh JWTs.
|
|
35
35
|
*/
|
|
36
36
|
export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
37
37
|
constructor(
|
|
38
38
|
// eslint-disable-next-line no-unused-vars
|
|
39
|
-
// protected authServices: Record<string, IAMAuthenticationService<object, object>>,
|
|
40
39
|
// eslint-disable-next-line no-unused-vars
|
|
41
40
|
protected authServices: {
|
|
42
41
|
[IAMAuthenticationType.OAuth2]?: IAMAuthenticationOAuth2Service<object, object>;
|
|
@@ -45,16 +44,17 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
45
44
|
// eslint-disable-next-line no-unused-vars
|
|
46
45
|
protected configProvider: ConfigProviderService,
|
|
47
46
|
// eslint-disable-next-line no-unused-vars
|
|
48
|
-
public domainTokensEntityService: DomainEntityService<
|
|
49
|
-
TokenEntity<TokenEntityFields>,
|
|
50
|
-
DataEntityService<TokenEntity<TokenEntityFields>>
|
|
51
|
-
>,
|
|
52
|
-
// eslint-disable-next-line no-unused-vars
|
|
53
47
|
protected logger: LoggerService,
|
|
54
48
|
// eslint-disable-next-line no-unused-vars
|
|
55
|
-
protected moduleName: string
|
|
49
|
+
protected moduleName: string,
|
|
50
|
+
// eslint-disable-next-line no-unused-vars
|
|
51
|
+
public domainTokensEntityService?: DomainEntityService<
|
|
52
|
+
TokenEntity<TokenEntityFields>,
|
|
53
|
+
DataEntityService<TokenEntity<TokenEntityFields>>
|
|
54
|
+
>
|
|
56
55
|
) {}
|
|
57
56
|
|
|
57
|
+
// TODO: issuer and audience
|
|
58
58
|
async create(
|
|
59
59
|
data: TokenManagerCreateData<TokenEntityFields>,
|
|
60
60
|
options: TokenManagerCreateOptions
|
|
@@ -62,7 +62,14 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
62
62
|
const { configProvider, logger, moduleName, domainTokensEntityService } = this;
|
|
63
63
|
const moduleConfig = configProvider.config.domain[moduleName] as AppConfigDomainIAM;
|
|
64
64
|
const { type, ...tokenData } = data;
|
|
65
|
-
const {
|
|
65
|
+
const {
|
|
66
|
+
expiresInMinutes,
|
|
67
|
+
identifierDataField,
|
|
68
|
+
persist,
|
|
69
|
+
purgeOldFromData,
|
|
70
|
+
tokenContentOnlyFields,
|
|
71
|
+
useExternalTokenAsLocal
|
|
72
|
+
} = options;
|
|
66
73
|
const signOptions = {} as jwt.SignOptions;
|
|
67
74
|
let secret: string;
|
|
68
75
|
// access token options
|
|
@@ -94,16 +101,26 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
94
101
|
} else {
|
|
95
102
|
throw new ApplicationError(`[TokenManager.create]: Invalid token type - "${type}".`);
|
|
96
103
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
let token: string;
|
|
105
|
+
if (useExternalTokenAsLocal) {
|
|
106
|
+
if (!data.externalToken) {
|
|
107
|
+
throw new ApplicationError(
|
|
108
|
+
'[TokenManager.create]: An externalToken is required when useExternalTokenAsLocal is set to true.'
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
token = data.externalToken;
|
|
112
|
+
} else {
|
|
113
|
+
token = await new Promise<string>((resolve, reject) => {
|
|
114
|
+
jwt.sign({ /*aud: moduleName,*/ data, iss: moduleName }, secret, signOptions, (err, token) => {
|
|
115
|
+
if (err) {
|
|
116
|
+
logger.error(err);
|
|
117
|
+
reject(new ApplicationError('Failed to sign token.'));
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
resolve(token as string);
|
|
121
|
+
});
|
|
105
122
|
});
|
|
106
|
-
}
|
|
123
|
+
}
|
|
107
124
|
const objectToSave = { ...tokenData, token, type } as TokenEntity<TokenEntityFields>;
|
|
108
125
|
if (tokenContentOnlyFields?.length) {
|
|
109
126
|
tokenContentOnlyFields.forEach(fieldName =>
|
|
@@ -113,6 +130,9 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
113
130
|
// save the token in the data system of choice
|
|
114
131
|
// TODO: multi-data isn't handled well here (or, actually, at all)
|
|
115
132
|
if (persist) {
|
|
133
|
+
if (!domainTokensEntityService) {
|
|
134
|
+
throw new ApplicationError(`[${moduleName}][TokenManager] domainTokensEntityService not configured.`);
|
|
135
|
+
}
|
|
116
136
|
if (purgeOldFromData && identifierDataField) {
|
|
117
137
|
const identifierValue = ld.get(data, identifierDataField);
|
|
118
138
|
if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
|
|
@@ -125,12 +145,13 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
125
145
|
}
|
|
126
146
|
}
|
|
127
147
|
await domainTokensEntityService.create(objectToSave, {}, {
|
|
128
|
-
ttl: signOptions.expiresIn
|
|
148
|
+
ttl: options.ttl || signOptions.expiresIn
|
|
129
149
|
} as DomainCreatePrivateOptions);
|
|
130
150
|
}
|
|
131
151
|
return { result: objectToSave };
|
|
132
152
|
}
|
|
133
153
|
|
|
154
|
+
// TODO: unify the renewal part with the AuthenticationManager.authenticate method's issueTokens part
|
|
134
155
|
async verifyAccessToken(
|
|
135
156
|
token: string,
|
|
136
157
|
options?: VerifyAccessTokenOptions
|
|
@@ -138,13 +159,13 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
138
159
|
const { configProvider, domainTokensEntityService, logger, moduleName } = this;
|
|
139
160
|
const moduleConfig = configProvider.config.domain[moduleName] as AppConfigDomainIAM;
|
|
140
161
|
const {
|
|
162
|
+
accessTokenDataRefreshTokenField,
|
|
141
163
|
deleteFromStoreIfExpired,
|
|
142
164
|
identifierDataField,
|
|
143
165
|
newAccessTokenExpiresInMinutes,
|
|
144
166
|
persistNewToken,
|
|
145
167
|
purgeStoreOnRenew,
|
|
146
|
-
refreshToken
|
|
147
|
-
refreshTokenAccessTokenIdentifierDataField
|
|
168
|
+
refreshToken
|
|
148
169
|
} = options || {};
|
|
149
170
|
// decode the token
|
|
150
171
|
const { error, externalTokenData, ...accessTokenData } = await this.verify(token, moduleConfig.jwtAccessSecret, {
|
|
@@ -152,7 +173,12 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
152
173
|
verifyExternal: true
|
|
153
174
|
});
|
|
154
175
|
const externalAccessTokenExpired = !!externalTokenData?.error;
|
|
155
|
-
const internalAccessTokenExpired =
|
|
176
|
+
const internalAccessTokenExpired =
|
|
177
|
+
(error as { message: string } | undefined)?.message === Constants.TOKEN_EXPIRED_ERROR;
|
|
178
|
+
if (error && !internalAccessTokenExpired) {
|
|
179
|
+
logger.error(error);
|
|
180
|
+
throw new ApplicationError('Invalid access token.');
|
|
181
|
+
}
|
|
156
182
|
let content = accessTokenData.content;
|
|
157
183
|
let errorMessageToLog: string | undefined;
|
|
158
184
|
let externalRenewEnabled = false;
|
|
@@ -166,7 +192,7 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
166
192
|
if (internalAccessTokenExpired || externalAccessTokenExpired) {
|
|
167
193
|
// prepare renewal if the necessary data is present
|
|
168
194
|
if (identifierDataField && content?.data) {
|
|
169
|
-
if (refreshToken &&
|
|
195
|
+
if (refreshToken && accessTokenDataRefreshTokenField) {
|
|
170
196
|
// internal refresh token verification
|
|
171
197
|
const { content: rtc, error: refreshTokenError } = await this.verify(
|
|
172
198
|
refreshToken,
|
|
@@ -178,19 +204,19 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
178
204
|
} else if (refreshTokenError) {
|
|
179
205
|
errorMessageToLog = refreshTokenError as string;
|
|
180
206
|
// delete the refresh token from the store
|
|
181
|
-
if (deleteFromStoreIfExpired
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
await domainTokensEntityService.delete(
|
|
185
|
-
{
|
|
186
|
-
filters: { [refreshTokenAccessTokenIdentifierDataField]: identifierValue, token: refreshToken }
|
|
187
|
-
},
|
|
188
|
-
{ requirePrimaryKeys: true }
|
|
189
|
-
);
|
|
207
|
+
if (deleteFromStoreIfExpired) {
|
|
208
|
+
if (!domainTokensEntityService) {
|
|
209
|
+
throw new ApplicationError(`[${moduleName}][TokenManager] domainTokensEntityService not configured.`);
|
|
190
210
|
}
|
|
211
|
+
await domainTokensEntityService.delete(
|
|
212
|
+
{
|
|
213
|
+
filters: { token: refreshToken }
|
|
214
|
+
},
|
|
215
|
+
{ requirePrimaryKeys: true }
|
|
216
|
+
);
|
|
191
217
|
}
|
|
192
218
|
} else {
|
|
193
|
-
const refreshTokenCheckValue = ld.get(content.data,
|
|
219
|
+
const refreshTokenCheckValue = ld.get(content.data, accessTokenDataRefreshTokenField);
|
|
194
220
|
if (refreshTokenCheckValue !== refreshToken) {
|
|
195
221
|
errorMessageToLog = '[IAMTokenManagerService.verifyAccessToken]: Mismatched internal refresh token.';
|
|
196
222
|
} else {
|
|
@@ -214,6 +240,9 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
214
240
|
errorMessageToLog =
|
|
215
241
|
'[IAMTokenManagerService.verifyAccessToken]: Access token expired & no refresh token data present or configured.';
|
|
216
242
|
if (deleteFromStoreIfExpired) {
|
|
243
|
+
if (!domainTokensEntityService) {
|
|
244
|
+
throw new ApplicationError(`[${moduleName}][TokenManager] domainTokensEntityService not configured.`);
|
|
245
|
+
}
|
|
217
246
|
const identifierValue = ld.get(content.data, identifierDataField);
|
|
218
247
|
if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
|
|
219
248
|
await domainTokensEntityService.delete(
|
|
@@ -227,22 +256,29 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
227
256
|
}
|
|
228
257
|
}
|
|
229
258
|
// otherwise, simply throw an error
|
|
230
|
-
else {
|
|
259
|
+
else if (internalAccessTokenExpired) {
|
|
231
260
|
errorMessageToLog = '[IAMTokenManagerService.verify]: Internal access token expired.';
|
|
261
|
+
} else if (externalAccessTokenExpired) {
|
|
262
|
+
errorMessageToLog = '[IAMTokenManagerService.verify]: External access token expired.';
|
|
263
|
+
} else {
|
|
264
|
+
errorMessageToLog = '[IAMTokenManagerService.verify]: Unknown access token error.';
|
|
232
265
|
}
|
|
233
266
|
} else {
|
|
234
267
|
// check whether the local access token exists in the cache
|
|
235
|
-
if (moduleConfig.
|
|
268
|
+
if (moduleConfig.checkAccessTokenExistenceLocally) {
|
|
236
269
|
if (!identifierDataField) {
|
|
237
270
|
errorMessageToLog =
|
|
238
|
-
'The identifierDataField is required when
|
|
271
|
+
'The identifierDataField is required when checkAccessTokenExistenceLocally is set to true.';
|
|
239
272
|
throwError = true;
|
|
240
273
|
} else if (!content?.data) {
|
|
241
|
-
errorMessageToLog = 'Content.data is required when
|
|
274
|
+
errorMessageToLog = 'Content.data is required when checkAccessTokenExistenceLocally is set to true.';
|
|
242
275
|
throwError = true;
|
|
243
276
|
} else {
|
|
244
|
-
|
|
245
|
-
|
|
277
|
+
if (!domainTokensEntityService) {
|
|
278
|
+
throw new ApplicationError(`[${moduleName}][TokenManager] domainTokensEntityService not configured.`);
|
|
279
|
+
}
|
|
280
|
+
const accessTokenResult = await domainTokensEntityService.findOne({
|
|
281
|
+
filters: { [identifierDataField]: ld.get(content.data, identifierDataField), type: TokenType.Access }
|
|
246
282
|
});
|
|
247
283
|
if (!accessTokenResult.result) {
|
|
248
284
|
errorMessageToLog = 'Access token not found locally.';
|
|
@@ -264,18 +300,26 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
264
300
|
let identifierValue: unknown | undefined;
|
|
265
301
|
// find and decode the id token, and add its data to the content
|
|
266
302
|
if (identifierDataField) {
|
|
303
|
+
if (!domainTokensEntityService) {
|
|
304
|
+
throw new ApplicationError(`[${moduleName}][TokenManager] domainTokensEntityService not configured.`);
|
|
305
|
+
}
|
|
267
306
|
identifierValue = ld.get(content.data, identifierDataField);
|
|
268
|
-
const idToken = await
|
|
269
|
-
filters: { [identifierDataField]: identifierValue,
|
|
307
|
+
const idToken = await domainTokensEntityService.findOne({
|
|
308
|
+
filters: { [identifierDataField]: identifierValue, type: TokenType.Id }
|
|
270
309
|
});
|
|
271
310
|
if (idToken.result) {
|
|
272
311
|
const idTokenData = await this.verify(idToken.result.token, moduleConfig.jwtAccessSecret);
|
|
273
|
-
if (idTokenData.
|
|
312
|
+
if (idTokenData.error && !renewEnabled) {
|
|
313
|
+
logger.error(idTokenData.error);
|
|
314
|
+
throw new ApplicationError('Invalid or expired id token.');
|
|
315
|
+
} else if (idTokenData.content) {
|
|
274
316
|
idTokenContent = idTokenData.content;
|
|
275
317
|
content = ld.merge(content, idTokenContent);
|
|
276
318
|
}
|
|
277
319
|
}
|
|
278
320
|
}
|
|
321
|
+
// TODO: this currently produces a redis error -
|
|
322
|
+
// "[RedisRepositoryService token][Validation Error]: A value is required for non-generated PK column userId"
|
|
279
323
|
// renewal
|
|
280
324
|
if (renewEnabled) {
|
|
281
325
|
const tokenData: TokenManagerCreateData<GenericObject<unknown>> = { ...content.data, type: TokenType.Access };
|
|
@@ -283,8 +327,8 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
283
327
|
...refreshTokenContent?.data,
|
|
284
328
|
type: TokenType.Access
|
|
285
329
|
};
|
|
286
|
-
if (refreshToken &&
|
|
287
|
-
tokenData[
|
|
330
|
+
if (refreshToken && accessTokenDataRefreshTokenField) {
|
|
331
|
+
tokenData[accessTokenDataRefreshTokenField] = refreshToken;
|
|
288
332
|
}
|
|
289
333
|
// renew the external access token, if enabled
|
|
290
334
|
if (externalRenewEnabled) {
|
|
@@ -300,10 +344,16 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
300
344
|
throw new ApplicationError('Expired access token.');
|
|
301
345
|
}
|
|
302
346
|
tokenData.externalToken = externalAccessTokenRenewalResult.newAccessToken;
|
|
347
|
+
// TODO: this
|
|
348
|
+
// if (externalAccessTokenRenewalResult.newIdToken) {
|
|
349
|
+
// idTokenContent = idTokenData.content;
|
|
350
|
+
// content = ld.merge(content, idTokenContent);
|
|
351
|
+
// }
|
|
303
352
|
if (externalAccessTokenRenewalResult.newRefreshToken) {
|
|
304
353
|
refreshTokenData.externalToken = externalAccessTokenRenewalResult.newRefreshToken;
|
|
305
354
|
}
|
|
306
355
|
}
|
|
356
|
+
// TODO: TTL
|
|
307
357
|
// renew the internal access tokens
|
|
308
358
|
const { result } = await this.create(tokenData as TokenManagerCreateData<TokenEntityFields>, {
|
|
309
359
|
expiresInMinutes: newAccessTokenExpiresInMinutes,
|
|
@@ -361,7 +411,10 @@ export class IAMTokenManagerService<TokenEntityFields extends object> {
|
|
|
361
411
|
const data = await new Promise<{ content?: DecodedTokenContent<TokenEntityFields>; error?: unknown }>(resolve => {
|
|
362
412
|
jwt.verify(token, secret, (err, decoded) => {
|
|
363
413
|
if (err) {
|
|
364
|
-
|
|
414
|
+
jwt.verify(token, secret, { ignoreExpiration: true }, (_newErr, decodedActual) => {
|
|
415
|
+
resolve({ content: decodedActual as DecodedTokenContent<TokenEntityFields>, error: err });
|
|
416
|
+
});
|
|
417
|
+
return;
|
|
365
418
|
}
|
|
366
419
|
resolve({ content: decoded as DecodedTokenContent<TokenEntityFields> });
|
|
367
420
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomainFindOneOptions, DomainFindOnePrivateOptions } from '@node-c/core';
|
|
2
|
+
|
|
3
|
+
import { IAMAuthorizationUser } from '../authorization';
|
|
4
|
+
|
|
5
|
+
export type IAMUsersGetUserWithPermissionsDataOptions = DomainFindOneOptions;
|
|
6
|
+
|
|
7
|
+
export interface IAMUsersGetUserWithPermissionsDataPrivateOptions extends DomainFindOnePrivateOptions {
|
|
8
|
+
keepPassword?: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type IAMUserWithPermissionsData<UserData, PermissionId> = IAMAuthorizationUser<PermissionId> & UserData;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
ApplicationError,
|
|
5
|
+
DOMAIN_ENTITY_SERVICE_DEFAULT_METHODS,
|
|
6
|
+
DataDefaultData,
|
|
7
|
+
DataEntityService,
|
|
8
|
+
DomainEntityService,
|
|
9
|
+
DomainEntityServiceDefaultData,
|
|
10
|
+
LoggerService
|
|
11
|
+
} from '@node-c/core';
|
|
12
|
+
|
|
13
|
+
import {
|
|
14
|
+
IAMUserWithPermissionsData,
|
|
15
|
+
IAMUsersGetUserWithPermissionsDataOptions,
|
|
16
|
+
IAMUsersGetUserWithPermissionsDataPrivateOptions
|
|
17
|
+
} from './users.definitions';
|
|
18
|
+
|
|
19
|
+
@Injectable()
|
|
20
|
+
export class IAMUsersService<
|
|
21
|
+
User extends object,
|
|
22
|
+
EntityService extends DataEntityService<User, DataEntityServiceData>,
|
|
23
|
+
Data extends DomainEntityServiceDefaultData<User> = DomainEntityServiceDefaultData<User>,
|
|
24
|
+
AdditionalEntityServices extends
|
|
25
|
+
| Record<string, DataEntityService<Partial<User>, DataDefaultData<object>>>
|
|
26
|
+
| undefined = undefined,
|
|
27
|
+
DataEntityServiceData extends DataDefaultData<User> = DataDefaultData<User>
|
|
28
|
+
> extends DomainEntityService<User, EntityService, Data, AdditionalEntityServices, DataEntityServiceData> {
|
|
29
|
+
constructor(
|
|
30
|
+
dataEntityService: EntityService,
|
|
31
|
+
defaultMethods: string[] = DOMAIN_ENTITY_SERVICE_DEFAULT_METHODS,
|
|
32
|
+
logger: LoggerService,
|
|
33
|
+
additionalDataEntityServices?: AdditionalEntityServices
|
|
34
|
+
) {
|
|
35
|
+
super(dataEntityService, defaultMethods, logger, additionalDataEntityServices);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async getUserWithPermissionsData(
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
40
|
+
_options: IAMUsersGetUserWithPermissionsDataOptions,
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
42
|
+
_privateOptions?: IAMUsersGetUserWithPermissionsDataPrivateOptions
|
|
43
|
+
): Promise<IAMUserWithPermissionsData<User, unknown> | null> {
|
|
44
|
+
throw new ApplicationError('[IAMUsersService]: Method getUserWithPermissionsData not implemented.');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IAMUserManagerUserTokenUserIdentifier = void 0;
|
|
4
|
-
var IAMUserManagerUserTokenUserIdentifier;
|
|
5
|
-
(function (IAMUserManagerUserTokenUserIdentifier) {
|
|
6
|
-
IAMUserManagerUserTokenUserIdentifier["FieldName"] = "userId";
|
|
7
|
-
})(IAMUserManagerUserTokenUserIdentifier || (exports.IAMUserManagerUserTokenUserIdentifier = IAMUserManagerUserTokenUserIdentifier = {}));
|
|
8
|
-
//# sourceMappingURL=iam.userManager.definitions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iam.userManager.definitions.js","sourceRoot":"","sources":["../../../src/services/userManager/iam.userManager.definitions.ts"],"names":[],"mappings":";;;AAuEA,IAAY,qCAGX;AAHD,WAAY,qCAAqC;IAE/C,6DAAoB,CAAA;AACtB,CAAC,EAHW,qCAAqC,qDAArC,qCAAqC,QAGhD"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ConfigProviderService, DataDefaultData, DataEntityService, DataFindOneOptions, DomainEntityService, DomainEntityServiceDefaultData, GenericObject, LoggerService } from '@node-c/core';
|
|
2
|
-
import { IAMUserManagerCreateAccessTokenOptions, IAMUserManagerCreateAccessTokenReturnData, IAMUserManagerGetUserWithPermissionsDataOptions, IAMUserManagerUserTokenEnityFields, IAMUserManagerUserWithPermissionsData } from './iam.userManager.definitions';
|
|
3
|
-
import { IAMAuthenticationService, IAMAuthenticationType } from '../authentication';
|
|
4
|
-
import { IAMAuthenticationOAuth2Service } from '../authenticationOAuth2';
|
|
5
|
-
import { IAMAuthenticationUserLocalService } from '../authenticationUserLocal';
|
|
6
|
-
import { IAMTokenManagerService } from '../tokenManager';
|
|
7
|
-
export declare class IAMUserManagerService<User extends object, Data extends DomainEntityServiceDefaultData<Partial<User>> = DomainEntityServiceDefaultData<Partial<User>>, DataEntityServiceData extends DataDefaultData<Partial<User>> = DataDefaultData<Partial<User>>> {
|
|
8
|
-
protected authServices: {
|
|
9
|
-
[IAMAuthenticationType.OAuth2]?: IAMAuthenticationOAuth2Service<object, object>;
|
|
10
|
-
[IAMAuthenticationType.UserLocal]?: IAMAuthenticationUserLocalService<object, object>;
|
|
11
|
-
} & {
|
|
12
|
-
[serviceName: string]: IAMAuthenticationService<object, object>;
|
|
13
|
-
};
|
|
14
|
-
protected configProvider: ConfigProviderService;
|
|
15
|
-
protected dataUsersAuthCacheService: DataEntityService<GenericObject>;
|
|
16
|
-
protected domainUsersEntityService: DomainEntityService<User, DataEntityService<User, DataEntityServiceData>, Data, Record<string, DataEntityService<Partial<User>, DataDefaultData<object>>> | undefined>;
|
|
17
|
-
protected logger: LoggerService;
|
|
18
|
-
protected moduleName: string;
|
|
19
|
-
protected tokenManager: IAMTokenManagerService<IAMUserManagerUserTokenEnityFields>;
|
|
20
|
-
constructor(authServices: {
|
|
21
|
-
[IAMAuthenticationType.OAuth2]?: IAMAuthenticationOAuth2Service<object, object>;
|
|
22
|
-
[IAMAuthenticationType.UserLocal]?: IAMAuthenticationUserLocalService<object, object>;
|
|
23
|
-
} & {
|
|
24
|
-
[serviceName: string]: IAMAuthenticationService<object, object>;
|
|
25
|
-
}, configProvider: ConfigProviderService, dataUsersAuthCacheService: DataEntityService<GenericObject>, domainUsersEntityService: DomainEntityService<User, DataEntityService<User, DataEntityServiceData>, Data, Record<string, DataEntityService<Partial<User>, DataDefaultData<object>>> | undefined>, logger: LoggerService, moduleName: string, tokenManager: IAMTokenManagerService<IAMUserManagerUserTokenEnityFields>);
|
|
26
|
-
createAccessToken<AuthData = unknown>(options: IAMUserManagerCreateAccessTokenOptions<AuthData>): Promise<IAMUserManagerCreateAccessTokenReturnData<User>>;
|
|
27
|
-
private executeStep;
|
|
28
|
-
protected getUserForStepExecution(options: {
|
|
29
|
-
filters: GenericObject;
|
|
30
|
-
mainFilterField: string;
|
|
31
|
-
}): Promise<IAMUserManagerUserWithPermissionsData<User, unknown> | null>;
|
|
32
|
-
getUserWithPermissionsData(_options: DataFindOneOptions, _privateOptions?: IAMUserManagerGetUserWithPermissionsDataOptions): Promise<IAMUserManagerUserWithPermissionsData<User, unknown> | null>;
|
|
33
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iam.userManager.service.js","sourceRoot":"","sources":["../../../src/services/userManager/iam.userManager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/userManager/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,4DAA0C"}
|