@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.
Files changed (134) hide show
  1. package/dist/common/definitions/common.constants.d.ts +13 -9
  2. package/dist/common/definitions/common.constants.js +13 -10
  3. package/dist/common/definitions/common.constants.js.map +1 -1
  4. package/dist/services/authentication/iam.authentication.definitions.d.ts +11 -2
  5. package/dist/services/authentication/iam.authentication.definitions.js +1 -1
  6. package/dist/services/authentication/iam.authentication.service.d.ts +9 -4
  7. package/dist/services/authentication/iam.authentication.service.js +95 -4
  8. package/dist/services/authentication/iam.authentication.service.js.map +1 -1
  9. package/dist/services/authenticationConsumer/iam.authenticationConsumer.definitions.d.ts +15 -0
  10. package/dist/services/authenticationConsumer/iam.authenticationConsumer.definitions.js +3 -0
  11. package/dist/services/authenticationConsumer/iam.authenticationConsumer.definitions.js.map +1 -0
  12. package/dist/services/authenticationConsumer/iam.authenticationConsumer.service.d.ts +12 -0
  13. package/dist/services/authenticationConsumer/iam.authenticationConsumer.service.js +135 -0
  14. package/dist/services/authenticationConsumer/iam.authenticationConsumer.service.js.map +1 -0
  15. package/dist/services/authenticationConsumer/index.d.ts +2 -0
  16. package/dist/services/authenticationConsumer/index.js +19 -0
  17. package/dist/services/authenticationConsumer/index.js.map +1 -0
  18. package/dist/services/{userManager/iam.userManager.definitions.d.ts → authenticationManager/iam.authenticationManager.definitions.d.ts} +11 -15
  19. package/dist/services/authenticationManager/iam.authenticationManager.definitions.js +8 -0
  20. package/dist/services/authenticationManager/iam.authenticationManager.definitions.js.map +1 -0
  21. package/dist/services/authenticationManager/iam.authenticationManager.service.d.ts +33 -0
  22. package/dist/services/{userManager/iam.userManager.service.js → authenticationManager/iam.authenticationManager.service.js} +140 -72
  23. package/dist/services/authenticationManager/iam.authenticationManager.service.js.map +1 -0
  24. package/dist/services/authenticationManager/index.d.ts +2 -0
  25. package/dist/services/authenticationManager/index.js +19 -0
  26. package/dist/services/authenticationManager/index.js.map +1 -0
  27. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.d.ts +5 -2
  28. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.d.ts +2 -14
  29. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js +53 -95
  30. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js.map +1 -1
  31. package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.d.ts +19 -0
  32. package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.js +3 -0
  33. package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.js.map +1 -0
  34. package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.d.ts +11 -0
  35. package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.js +69 -0
  36. package/dist/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.js.map +1 -0
  37. package/dist/services/authenticationOAuth2Consumer/index.d.ts +2 -0
  38. package/dist/services/authenticationOAuth2Consumer/index.js +19 -0
  39. package/dist/services/authenticationOAuth2Consumer/index.js.map +1 -0
  40. package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.d.ts +14 -0
  41. package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.js +3 -0
  42. package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.js.map +1 -0
  43. package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.service.d.ts +9 -0
  44. package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.service.js +70 -0
  45. package/dist/services/authenticationPassthrough/iam.authenticationPassthrough.service.js.map +1 -0
  46. package/dist/services/authenticationPassthrough/index.d.ts +2 -0
  47. package/dist/services/authenticationPassthrough/index.js +19 -0
  48. package/dist/services/authenticationPassthrough/index.js.map +1 -0
  49. package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.d.ts +18 -0
  50. package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.js +3 -0
  51. package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.js.map +1 -0
  52. package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.d.ts +10 -0
  53. package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.js +68 -0
  54. package/dist/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.js.map +1 -0
  55. package/dist/services/authenticationPassthroughConsumer/index.d.ts +2 -0
  56. package/dist/services/authenticationPassthroughConsumer/index.js +19 -0
  57. package/dist/services/authenticationPassthroughConsumer/index.js.map +1 -0
  58. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.d.ts +2 -2
  59. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.d.ts +2 -6
  60. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js +4 -8
  61. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js.map +1 -1
  62. package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.d.ts +8 -0
  63. package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.js +3 -0
  64. package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.js.map +1 -0
  65. package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.d.ts +8 -0
  66. package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.js +36 -0
  67. package/dist/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.js.map +1 -0
  68. package/dist/services/authenticationUserLocalConsumer/index.d.ts +2 -0
  69. package/dist/services/authenticationUserLocalConsumer/index.js +19 -0
  70. package/dist/services/authenticationUserLocalConsumer/index.js.map +1 -0
  71. package/dist/services/authorization/iam.authorization.definitions.d.ts +24 -24
  72. package/dist/services/authorization/iam.authorization.definitions.js +7 -7
  73. package/dist/services/authorization/iam.authorization.definitions.js.map +1 -1
  74. package/dist/services/authorization/iam.authorization.service.d.ts +8 -11
  75. package/dist/services/authorization/iam.authorization.service.js +26 -30
  76. package/dist/services/authorization/iam.authorization.service.js.map +1 -1
  77. package/dist/services/index.d.ts +7 -1
  78. package/dist/services/index.js +7 -1
  79. package/dist/services/index.js.map +1 -1
  80. package/dist/services/tokenManager/iam.tokenManager.definitions.d.ts +4 -1
  81. package/dist/services/tokenManager/iam.tokenManager.definitions.js.map +1 -1
  82. package/dist/services/tokenManager/iam.tokenManager.service.d.ts +2 -2
  83. package/dist/services/tokenManager/iam.tokenManager.service.js +73 -35
  84. package/dist/services/tokenManager/iam.tokenManager.service.js.map +1 -1
  85. package/dist/services/users/index.d.ts +2 -0
  86. package/dist/services/{userManager → users}/index.js +2 -2
  87. package/dist/services/users/index.js.map +1 -0
  88. package/dist/services/users/users.definitions.d.ts +7 -0
  89. package/dist/services/users/users.definitions.js +3 -0
  90. package/dist/services/users/users.definitions.js.map +1 -0
  91. package/dist/services/users/users.service.d.ts +6 -0
  92. package/dist/services/users/users.service.js +39 -0
  93. package/dist/services/users/users.service.js.map +1 -0
  94. package/package.json +2 -2
  95. package/src/common/definitions/common.constants.ts +13 -16
  96. package/src/services/authentication/iam.authentication.definitions.ts +11 -4
  97. package/src/services/authentication/iam.authentication.service.ts +79 -15
  98. package/src/services/authenticationConsumer/iam.authenticationConsumer.definitions.ts +43 -0
  99. package/src/services/authenticationConsumer/iam.authenticationConsumer.service.ts +192 -0
  100. package/src/services/authenticationConsumer/index.ts +2 -0
  101. package/src/services/{userManager/iam.userManager.definitions.ts → authenticationManager/iam.authenticationManager.definitions.ts} +11 -19
  102. package/src/services/{userManager/iam.userManager.service.ts → authenticationManager/iam.authenticationManager.service.ts} +174 -111
  103. package/src/services/authenticationManager/index.ts +2 -0
  104. package/src/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.ts +6 -3
  105. package/src/services/authenticationOAuth2/iam.authenticationOAuth2.service.ts +97 -85
  106. package/src/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.definitions.ts +56 -0
  107. package/src/services/authenticationOAuth2Consumer/iam.authenticationOAuth2Consumer.service.ts +93 -0
  108. package/src/services/authenticationOAuth2Consumer/index.ts +2 -0
  109. package/src/services/authenticationPassthrough/iam.authenticationPassthrough.definitions.ts +32 -0
  110. package/src/services/authenticationPassthrough/iam.authenticationPassthrough.service.ts +100 -0
  111. package/src/services/authenticationPassthrough/index.ts +2 -0
  112. package/src/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.definitions.ts +52 -0
  113. package/src/services/authenticationPassthroughConsumer/iam.authenticationPassthroughConsumer.service.ts +96 -0
  114. package/src/services/authenticationPassthroughConsumer/index.ts +2 -0
  115. package/src/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.ts +3 -3
  116. package/src/services/authenticationUserLocal/iam.authenticationUserLocal.service.ts +17 -12
  117. package/src/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.definitions.ts +29 -0
  118. package/src/services/authenticationUserLocalConsumer/iam.authenticationUserLocalConsumer.service.ts +40 -0
  119. package/src/services/authenticationUserLocalConsumer/index.ts +2 -0
  120. package/src/services/authorization/iam.authorization.definitions.ts +26 -27
  121. package/src/services/authorization/iam.authorization.service.ts +40 -65
  122. package/src/services/index.ts +7 -1
  123. package/src/services/tokenManager/iam.tokenManager.definitions.ts +4 -1
  124. package/src/services/tokenManager/iam.tokenManager.service.ts +98 -45
  125. package/src/services/users/index.ts +2 -0
  126. package/src/services/users/users.definitions.ts +11 -0
  127. package/src/services/users/users.service.ts +46 -0
  128. package/dist/services/userManager/iam.userManager.definitions.js +0 -8
  129. package/dist/services/userManager/iam.userManager.definitions.js.map +0 -1
  130. package/dist/services/userManager/iam.userManager.service.d.ts +0 -33
  131. package/dist/services/userManager/iam.userManager.service.js.map +0 -1
  132. package/dist/services/userManager/index.d.ts +0 -2
  133. package/dist/services/userManager/index.js.map +0 -1
  134. 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 { expiresInMinutes, identifierDataField, persist, purgeOldFromData, tokenContentOnlyFields } = options;
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
- const token = await new Promise<string>((resolve, reject) => {
98
- jwt.sign({ data }, secret, signOptions, (err, token) => {
99
- if (err) {
100
- logger.error(err);
101
- reject(new ApplicationError('Failed to sign token.'));
102
- return;
103
- }
104
- resolve(token as string);
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 = error === Constants.TOKEN_EXPIRED_ERROR;
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 && refreshTokenAccessTokenIdentifierDataField) {
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 && refreshTokenContent.data) {
182
- const identifierValue = ld.get(refreshTokenContent.data, refreshTokenAccessTokenIdentifierDataField);
183
- if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
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, refreshTokenAccessTokenIdentifierDataField);
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.checkAccessTokenExistanceLocally) {
268
+ if (moduleConfig.checkAccessTokenExistenceLocally) {
236
269
  if (!identifierDataField) {
237
270
  errorMessageToLog =
238
- 'The identifierDataField is required when checkAccessTokenExistanceLocally is set to true.';
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 checkAccessTokenExistanceLocally is set to true.';
274
+ errorMessageToLog = 'Content.data is required when checkAccessTokenExistenceLocally is set to true.';
242
275
  throwError = true;
243
276
  } else {
244
- const accessTokenResult = await this.domainTokensEntityService.findOne({
245
- filters: { [identifierDataField]: ld.get(content.data, identifierDataField), token, type: TokenType.Access }
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 this.domainTokensEntityService.findOne({
269
- filters: { [identifierDataField]: identifierValue, token, type: TokenType.Id }
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.content) {
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 && refreshTokenAccessTokenIdentifierDataField) {
287
- tokenData[refreshTokenAccessTokenIdentifierDataField] = refreshToken;
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
- resolve({ content: decoded as DecodedTokenContent<TokenEntityFields>, error: err });
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,2 @@
1
+ export * from './users.definitions';
2
+ export * from './users.service';
@@ -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,2 +0,0 @@
1
- export * from './iam.userManager.definitions';
2
- export * from './iam.userManager.service';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/userManager/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,4DAA0C"}
@@ -1,2 +0,0 @@
1
- export * from './iam.userManager.definitions';
2
- export * from './iam.userManager.service';