@restorecommerce/acs-client 0.6.12 → 0.6.13

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/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.6.13](https://github.com/restorecommerce/libs/compare/@restorecommerce/acs-client@0.6.12...@restorecommerce/acs-client@0.6.13) (2022-02-14)
7
+
8
+ **Note:** Version bump only for package @restorecommerce/acs-client
9
+
10
+
11
+
12
+
13
+
6
14
  ## [0.6.12](https://github.com/restorecommerce/libs/compare/@restorecommerce/acs-client@0.6.11...@restorecommerce/acs-client@0.6.12) (2022-02-14)
7
15
 
8
16
  **Note:** Version bump only for package @restorecommerce/acs-client
package/lib/acs/authz.js CHANGED
@@ -1,20 +1,33 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
23
  };
11
24
  Object.defineProperty(exports, "__esModule", { value: true });
12
25
  exports.initAuthZ = exports.ACSAuthZ = exports.UnAuthZ = exports.createResourceTarget = exports.formatResourceType = exports.createSubjectTarget = exports.createActionTarget = exports.authZ = void 0;
13
- const _ = require("lodash");
26
+ const _ = __importStar(require("lodash"));
14
27
  const interfaces_1 = require("./interfaces");
15
28
  const grpc_client_1 = require("@restorecommerce/grpc-client");
16
29
  const config_1 = require("../config");
17
- const logger_1 = require("../logger");
30
+ const logger_1 = __importDefault(require("../logger"));
18
31
  const cache_1 = require("./cache");
19
32
  const kafka_client_1 = require("@restorecommerce/kafka-client");
20
33
  const utils_1 = require("../utils");
@@ -163,89 +176,85 @@ class UnAuthZ {
163
176
  }
164
177
  }
165
178
  }
166
- isAllowed(request, ctx, useCache) {
167
- return __awaiter(this, void 0, void 0, function* () {
168
- const authZRequest = {
169
- target: {
170
- action: (0, exports.createActionTarget)(request.target.action),
171
- subject: (0, exports.createSubjectTarget)(request.target.subject),
172
- resources: (0, exports.createResourceTarget)(request.target.resource, request.target.action)
173
- },
174
- context: {
175
- subject: this.encode(request.target.subject),
176
- resources: this.encode(ctx.resources)
177
- }
178
- };
179
- let response;
180
- try {
181
- response = yield (0, cache_1.getOrFill)(authZRequest, (req) => __awaiter(this, void 0, void 0, function* () {
182
- return yield this.acs.isAllowed(authZRequest);
183
- }), useCache, 'UnAuthZ:isAllowed');
184
- }
185
- catch (err) {
186
- logger_1.default.error('Error invoking access-control-srv isAllowed operation', err);
187
- logger_1.default.error('error stack', err.stack);
188
- if (!err.code) {
189
- err.code = 500;
190
- }
191
- response = {
192
- decision: interfaces_1.Decision.DENY,
193
- operation_status: {
194
- code: err.code,
195
- message: err.message
196
- }
197
- };
198
- }
199
- if (_.isEmpty(response)) {
200
- logger_1.default.error('Unexpected empty response from ACS');
179
+ async isAllowed(request, ctx, useCache) {
180
+ const authZRequest = {
181
+ target: {
182
+ action: (0, exports.createActionTarget)(request.target.action),
183
+ subject: (0, exports.createSubjectTarget)(request.target.subject),
184
+ resources: (0, exports.createResourceTarget)(request.target.resource, request.target.action)
185
+ },
186
+ context: {
187
+ subject: this.encode(request.target.subject),
188
+ resources: this.encode(ctx.resources)
201
189
  }
202
- if (response.obligation && response.obligation.length > 0) {
203
- response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
190
+ };
191
+ let response;
192
+ try {
193
+ response = await (0, cache_1.getOrFill)(authZRequest, async (req) => {
194
+ return await this.acs.isAllowed(authZRequest);
195
+ }, useCache, 'UnAuthZ:isAllowed');
196
+ }
197
+ catch (err) {
198
+ logger_1.default.error('Error invoking access-control-srv isAllowed operation', err);
199
+ logger_1.default.error('error stack', err.stack);
200
+ if (!err.code) {
201
+ err.code = 500;
204
202
  }
205
- return response;
206
- });
207
- }
208
- whatIsAllowed(request, ctx, useCache) {
209
- return __awaiter(this, void 0, void 0, function* () {
210
- const authZRequest = {
211
- target: {
212
- action: (0, exports.createActionTarget)(request.target.action),
213
- subject: (0, exports.createSubjectTarget)(request.target.subject),
214
- resources: (0, exports.createResourceTarget)(request.target.resource, request.target.action)
215
- },
216
- context: {
217
- subject: this.encode(request.target.subject),
218
- resources: this.encode(ctx.resources)
203
+ response = {
204
+ decision: interfaces_1.Decision.DENY,
205
+ operation_status: {
206
+ code: err.code,
207
+ message: err.message
219
208
  }
220
209
  };
221
- let response;
222
- try {
223
- response = yield (0, cache_1.getOrFill)(authZRequest, (req) => __awaiter(this, void 0, void 0, function* () {
224
- return yield this.acs.whatIsAllowed(authZRequest);
225
- }), useCache, 'UnAuthZ:whatIsAllowed');
226
- }
227
- catch (err) {
228
- logger_1.default.error('Error invoking access-control-srv whatIsAllowed operation', err);
229
- logger_1.default.error('error stack', err.stack);
230
- if (!err.code) {
231
- err.code = 500;
232
- }
233
- response = {
234
- decision: interfaces_1.Decision.DENY,
235
- operation_status: {
236
- code: err.code,
237
- message: err.message
238
- }
239
- };
240
- }
241
- if (_.isEmpty(response)) {
242
- logger_1.default.error('Unexpected empty response from ACS');
210
+ }
211
+ if (_.isEmpty(response)) {
212
+ logger_1.default.error('Unexpected empty response from ACS');
213
+ }
214
+ if (response.obligation && response.obligation.length > 0) {
215
+ response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
216
+ }
217
+ return response;
218
+ }
219
+ async whatIsAllowed(request, ctx, useCache) {
220
+ const authZRequest = {
221
+ target: {
222
+ action: (0, exports.createActionTarget)(request.target.action),
223
+ subject: (0, exports.createSubjectTarget)(request.target.subject),
224
+ resources: (0, exports.createResourceTarget)(request.target.resource, request.target.action)
225
+ },
226
+ context: {
227
+ subject: this.encode(request.target.subject),
228
+ resources: this.encode(ctx.resources)
243
229
  }
244
- if (response.obligation && response.obligation.length > 0) {
245
- response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
230
+ };
231
+ let response;
232
+ try {
233
+ response = await (0, cache_1.getOrFill)(authZRequest, async (req) => {
234
+ return await this.acs.whatIsAllowed(authZRequest);
235
+ }, useCache, 'UnAuthZ:whatIsAllowed');
236
+ }
237
+ catch (err) {
238
+ logger_1.default.error('Error invoking access-control-srv whatIsAllowed operation', err);
239
+ logger_1.default.error('error stack', err.stack);
240
+ if (!err.code) {
241
+ err.code = 500;
246
242
  }
247
- return response;
248
- });
243
+ response = {
244
+ decision: interfaces_1.Decision.DENY,
245
+ operation_status: {
246
+ code: err.code,
247
+ message: err.message
248
+ }
249
+ };
250
+ }
251
+ if (_.isEmpty(response)) {
252
+ logger_1.default.error('Unexpected empty response from ACS');
253
+ }
254
+ if (response.obligation && response.obligation.length > 0) {
255
+ response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
256
+ }
257
+ return response;
249
258
  }
250
259
  }
251
260
  exports.UnAuthZ = UnAuthZ;
@@ -266,55 +275,53 @@ class ACSAuthZ {
266
275
  * @param useCache
267
276
  * @returns {DecisionResponse}
268
277
  */
269
- isAllowed(request, ctx, useCache) {
270
- return __awaiter(this, void 0, void 0, function* () {
271
- const authZRequest = this.prepareRequest(request);
272
- authZRequest.context = {
273
- subject: {},
274
- resources: [],
275
- security: this.encode(request.context.security)
276
- };
277
- const subject = { token: request.target.subject.token };
278
- let cachePrefix = 'ACSAuthZ';
279
- if (request.target.subject.id !== undefined) {
280
- cachePrefix = request.target.subject.id + ':' + cachePrefix;
281
- }
282
- authZRequest.context.subject = this.encode(subject);
283
- authZRequest.context.resources = this.encode(ctx.resources);
284
- // for isAllowed we use the subject, action and resource fields .i.e. reqeust Target
285
- // since the context resources contains the values which would change for each
286
- // resource being created and should not be used in key when generating hash
287
- let cacheKey = {
288
- target: authZRequest.target
289
- };
290
- let response;
291
- try {
292
- response = yield (0, cache_1.getOrFill)(cacheKey, (req) => __awaiter(this, void 0, void 0, function* () {
293
- return yield this.acs.isAllowed(authZRequest);
294
- }), useCache, cachePrefix + ':isAllowed');
278
+ async isAllowed(request, ctx, useCache) {
279
+ const authZRequest = this.prepareRequest(request);
280
+ authZRequest.context = {
281
+ subject: {},
282
+ resources: [],
283
+ security: this.encode(request.context.security)
284
+ };
285
+ const subject = { token: request.target.subject.token };
286
+ let cachePrefix = 'ACSAuthZ';
287
+ if (request.target.subject.id !== undefined) {
288
+ cachePrefix = request.target.subject.id + ':' + cachePrefix;
289
+ }
290
+ authZRequest.context.subject = this.encode(subject);
291
+ authZRequest.context.resources = this.encode(ctx.resources);
292
+ // for isAllowed we use the subject, action and resource fields .i.e. reqeust Target
293
+ // since the context resources contains the values which would change for each
294
+ // resource being created and should not be used in key when generating hash
295
+ let cacheKey = {
296
+ target: authZRequest.target
297
+ };
298
+ let response;
299
+ try {
300
+ response = await (0, cache_1.getOrFill)(cacheKey, async (req) => {
301
+ return await this.acs.isAllowed(authZRequest);
302
+ }, useCache, cachePrefix + ':isAllowed');
303
+ }
304
+ catch (err) {
305
+ logger_1.default.error('Error invoking access-control-srv isAllowed operation', err);
306
+ logger_1.default.error('error stack', err.stack);
307
+ if (!err.code) {
308
+ err.code = 500;
295
309
  }
296
- catch (err) {
297
- logger_1.default.error('Error invoking access-control-srv isAllowed operation', err);
298
- logger_1.default.error('error stack', err.stack);
299
- if (!err.code) {
300
- err.code = 500;
310
+ response = {
311
+ decision: interfaces_1.Decision.DENY,
312
+ operation_status: {
313
+ code: err.code,
314
+ message: err.message
301
315
  }
302
- response = {
303
- decision: interfaces_1.Decision.DENY,
304
- operation_status: {
305
- code: err.code,
306
- message: err.message
307
- }
308
- };
309
- }
310
- if (_.isEmpty(response)) {
311
- logger_1.default.error('Unexpected empty response from ACS');
312
- }
313
- if (response.obligation && response.obligation.length > 0) {
314
- response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
315
- }
316
- return response;
317
- });
316
+ };
317
+ }
318
+ if (_.isEmpty(response)) {
319
+ logger_1.default.error('Unexpected empty response from ACS');
320
+ }
321
+ if (response.obligation && response.obligation.length > 0) {
322
+ response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
323
+ }
324
+ return response;
318
325
  }
319
326
  /**
320
327
  * Perform request to access-control-srv
@@ -322,49 +329,47 @@ class ACSAuthZ {
322
329
  * @returns {PolicySetRQ}
323
330
  * @param resource
324
331
  */
325
- whatIsAllowed(request, ctx, useCache) {
326
- return __awaiter(this, void 0, void 0, function* () {
327
- const authZRequest = this.prepareRequest(request);
328
- authZRequest.context = {
329
- subject: {},
330
- resources: [],
331
- security: this.encode(request.context.security)
332
- };
333
- const subject = { token: request.target.subject.token };
334
- let cachePrefix = 'ACSAuthZ';
335
- if (request.target.subject.id !== undefined) {
336
- cachePrefix = request.target.subject.id + ':' + cachePrefix;
337
- }
338
- authZRequest.context.subject = this.encode(subject);
339
- authZRequest.context.resources = this.encode(ctx.resources);
340
- let response;
341
- try {
342
- response = yield (0, cache_1.getOrFill)(authZRequest, (req) => __awaiter(this, void 0, void 0, function* () {
343
- return yield this.acs.whatIsAllowed(authZRequest);
344
- }), useCache, cachePrefix + ':whatIsAllowed');
332
+ async whatIsAllowed(request, ctx, useCache) {
333
+ const authZRequest = this.prepareRequest(request);
334
+ authZRequest.context = {
335
+ subject: {},
336
+ resources: [],
337
+ security: this.encode(request.context.security)
338
+ };
339
+ const subject = { token: request.target.subject.token };
340
+ let cachePrefix = 'ACSAuthZ';
341
+ if (request.target.subject.id !== undefined) {
342
+ cachePrefix = request.target.subject.id + ':' + cachePrefix;
343
+ }
344
+ authZRequest.context.subject = this.encode(subject);
345
+ authZRequest.context.resources = this.encode(ctx.resources);
346
+ let response;
347
+ try {
348
+ response = await (0, cache_1.getOrFill)(authZRequest, async (req) => {
349
+ return await this.acs.whatIsAllowed(authZRequest);
350
+ }, useCache, cachePrefix + ':whatIsAllowed');
351
+ }
352
+ catch (err) {
353
+ logger_1.default.error('Error invoking access-control-srv whatIsAllowed operation', err);
354
+ logger_1.default.error('error stack', err.stack);
355
+ if (!err.code) {
356
+ err.code = 500;
345
357
  }
346
- catch (err) {
347
- logger_1.default.error('Error invoking access-control-srv whatIsAllowed operation', err);
348
- logger_1.default.error('error stack', err.stack);
349
- if (!err.code) {
350
- err.code = 500;
358
+ response = {
359
+ decision: interfaces_1.Decision.DENY,
360
+ operation_status: {
361
+ code: err.code,
362
+ message: err.message
351
363
  }
352
- response = {
353
- decision: interfaces_1.Decision.DENY,
354
- operation_status: {
355
- code: err.code,
356
- message: err.message
357
- }
358
- };
359
- }
360
- if (_.isEmpty(response)) {
361
- logger_1.default.error('Unexpected empty response from ACS');
362
- }
363
- if (response.obligation && response.obligation.length > 0) {
364
- response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
365
- }
366
- return response;
367
- });
364
+ };
365
+ }
366
+ if (_.isEmpty(response)) {
367
+ logger_1.default.error('Unexpected empty response from ACS');
368
+ }
369
+ if (response.obligation && response.obligation.length > 0) {
370
+ response.obligation = (0, utils_1.mapResourceURNObligationProperties)(response.obligation);
371
+ }
372
+ return response;
368
373
  }
369
374
  encode(object) {
370
375
  if (object) {
@@ -402,14 +407,14 @@ const acsEvents = [
402
407
  'ruleModified',
403
408
  'ruleDeleted',
404
409
  ];
405
- const eventListener = (msg, context, config, eventName) => __awaiter(void 0, void 0, void 0, function* () {
410
+ const eventListener = async (msg, context, config, eventName) => {
406
411
  if (acsEvents.indexOf(eventName) > -1) {
407
412
  // no prefix provided, flush complete cache
408
413
  logger_1.default.info(`Received event ${eventName} and hence evicting ACS cache`);
409
- yield (0, cache_1.flushCache)();
414
+ await (0, cache_1.flushCache)();
410
415
  }
411
- });
412
- const initAuthZ = (config) => __awaiter(void 0, void 0, void 0, function* () {
416
+ };
417
+ const initAuthZ = async (config) => {
413
418
  if (!exports.authZ) {
414
419
  if (config) {
415
420
  (0, config_1.updateConfig)(config);
@@ -427,13 +432,13 @@ const initAuthZ = (config) => __awaiter(void 0, void 0, void 0, function* () {
427
432
  // delete the Cache as it would be invalid if ACS resources are modified
428
433
  if (kafkaCfg && kafkaCfg.evictACSCache) {
429
434
  const events = new kafka_client_1.Events(kafkaCfg, logger_1.default);
430
- yield events.start();
435
+ await events.start();
431
436
  for (let topicLabel in kafkaCfg.evictACSCache) {
432
437
  let topicCfg = kafkaCfg.evictACSCache[topicLabel];
433
- let topic = yield events.topic(topicCfg.topic);
438
+ let topic = await events.topic(topicCfg.topic);
434
439
  if (topicCfg.events) {
435
440
  for (let eachEvent of topicCfg.events) {
436
- yield topic.on(eachEvent, eventListener);
441
+ await topic.on(eachEvent, eventListener);
437
442
  }
438
443
  }
439
444
  }
@@ -442,6 +447,6 @@ const initAuthZ = (config) => __awaiter(void 0, void 0, void 0, function* () {
442
447
  }
443
448
  }
444
449
  return exports.authZ;
445
- });
450
+ };
446
451
  exports.initAuthZ = initAuthZ;
447
452
  //# sourceMappingURL=authz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authz.js","sourceRoot":"","sources":["../../src/acs/authz.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authz.js","sourceRoot":"","sources":["../../src/acs/authz.ts"],"names":[],"mappings":"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"}