@nsshunt/stsappframework 3.1.128 → 3.1.129

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.
@@ -18,6 +18,8 @@ const chalk_1 = __importDefault(require("chalk"));
18
18
  const stsobservability_1 = require("@nsshunt/stsobservability");
19
19
  const commonTypes_1 = require("./commonTypes");
20
20
  class AuthUtilsNode {
21
+ #cache = {};
22
+ #cacheTimeout = 1000;
21
23
  #logger;
22
24
  #cookiejar;
23
25
  #httpsAgent = null;
@@ -49,6 +51,12 @@ class AuthUtilsNode {
49
51
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
52
  return async (req, res, next) => {
51
53
  if (options.permissions) {
54
+ const permissionsKey = options.permissions.join('_');
55
+ const scopeKey = req.auth.scope.split(' ').join('_');
56
+ if (this.#cache[permissionsKey] && this.#cache[permissionsKey].scopes[scopeKey]) {
57
+ next();
58
+ return;
59
+ }
52
60
  const scopes = req.auth.scope.split(' ');
53
61
  const requiredPermissions = [];
54
62
  for (let i = 0; i < options.permissions.length; i++) {
@@ -62,6 +70,17 @@ class AuthUtilsNode {
62
70
  res.status(http_status_codes_1.StatusCodes.UNAUTHORIZED).send({ status: http_status_codes_1.StatusCodes.UNAUTHORIZED, error: errorPayload });
63
71
  return;
64
72
  }
73
+ if (!this.#cache[permissionsKey]) {
74
+ this.#cache[permissionsKey] = {
75
+ scopes: {}
76
+ };
77
+ }
78
+ this.#cache[permissionsKey].scopes[scopeKey] = {
79
+ scope: scopeKey,
80
+ timeout: setTimeout(() => {
81
+ delete this.#cache[permissionsKey].scopes[scopeKey];
82
+ }, this.#cacheTimeout).unref()
83
+ };
65
84
  }
66
85
  next();
67
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"authutilsnode.js","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authutilsnode.js","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "3.1.128",
3
+ "version": "3.1.129",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -32,8 +32,19 @@ export interface IGetAPITokenFromAuthServerUsingScopeOptions {
32
32
  instrumentController?: PublishInstrumentController
33
33
  }
34
34
 
35
+ declare interface ICacheScopeRecord {
36
+ scope: string
37
+ timeout: NodeJS.Timeout
38
+ }
39
+
40
+ declare interface ICacheRecord {
41
+ scopes: Record<string, ICacheScopeRecord>
42
+ }
43
+
35
44
  export class AuthUtilsNode
36
45
  {
46
+ #cache: Record<string, ICacheRecord> = { };
47
+ #cacheTimeout: number = 1000;
37
48
  #logger: ISTSLogger
38
49
  #cookiejar: tough.CookieJar;
39
50
  #httpsAgent: https.Agent | null = null;
@@ -70,7 +81,17 @@ export class AuthUtilsNode
70
81
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
82
  return async (req: any, res: any, next: any) => {
72
83
  if (options.permissions) {
84
+
85
+ const permissionsKey = options.permissions.join('_');
86
+ const scopeKey = (req.auth.scope as string).split(' ').join('_');
87
+
88
+ if (this.#cache[permissionsKey] && this.#cache[permissionsKey].scopes[scopeKey]) {
89
+ next();
90
+ return;
91
+ }
92
+
73
93
  const scopes = req.auth.scope.split(' ');
94
+
74
95
  const requiredPermissions = [ ];
75
96
  for (let i=0; i < options.permissions.length; i++) {
76
97
  const permission = options.permissions[i];
@@ -83,6 +104,19 @@ export class AuthUtilsNode
83
104
  res.status(StatusCodes.UNAUTHORIZED).send( { status: StatusCodes.UNAUTHORIZED, error: errorPayload });
84
105
  return;
85
106
  }
107
+
108
+ if (!this.#cache[permissionsKey]) {
109
+ this.#cache[permissionsKey] = {
110
+ scopes: { }
111
+ }
112
+ }
113
+
114
+ this.#cache[permissionsKey].scopes[scopeKey] = {
115
+ scope: scopeKey,
116
+ timeout: setTimeout(() => {
117
+ delete this.#cache[permissionsKey].scopes[scopeKey]
118
+ }, this.#cacheTimeout).unref()
119
+ }
86
120
  }
87
121
  next();
88
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authutilsnode.d.ts","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AAUjC,OAAO,EAAmB,UAAU,EAAc,MAAM,mBAAmB,CAAA;AAQ3E,OAAO,EAAS,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAI9E,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,2CAA2C;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,oBAAoB,CAAC,EAAE,2BAA2B,CAAA;CACrD;AAED,qBAAa,aAAa;;gBAQV,MAAM,EAAE,UAAU;IA0B9B,8BAA8B,YAAa,qBAAqB,WAEzC,GAAG,OAAO,GAAG,QAAQ,GAAG,mBAkB9C;IAmBK,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAyB3D,eAAe,YAAmB,OAAO,MAAM,EAAE,GAAG,CAAC,YAAY,MAAM,KAAG,QAAQ,MAAM,MAAM,EAAE,CAAC,CAgB/F;IAEF,iBAAiB,aAAoB,MAAM,KAAG,QAAQ,MAAM,MAAM,EAAE,CAAC,CAGnE;IAEF,WAAW,UAAiB,MAAM,YAAY,MAAM,aAAa,MAAM,KAAG,QAAQ,MAAM,CAAC,CAgCxF;IAGD,aAAa,QAAS,MAAM,mBAG3B;IAED,mCAAmC,YAAmB,2CAA2C,WAAW,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAG,QAAQ,MAAM,CAAC,CAuGnJ;CACJ"}
1
+ {"version":3,"file":"authutilsnode.d.ts","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AAUjC,OAAO,EAAmB,UAAU,EAAc,MAAM,mBAAmB,CAAA;AAQ3E,OAAO,EAAS,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAI9E,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,2CAA2C;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,oBAAoB,CAAC,EAAE,2BAA2B,CAAA;CACrD;AAWD,qBAAa,aAAa;;gBAUV,MAAM,EAAE,UAAU;IA0B9B,8BAA8B,YAAa,qBAAqB,WAEzC,GAAG,OAAO,GAAG,QAAQ,GAAG,mBAyC9C;IAmBK,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;IAyB3D,eAAe,YAAmB,OAAO,MAAM,EAAE,GAAG,CAAC,YAAY,MAAM,KAAG,QAAQ,MAAM,MAAM,EAAE,CAAC,CAgB/F;IAEF,iBAAiB,aAAoB,MAAM,KAAG,QAAQ,MAAM,MAAM,EAAE,CAAC,CAGnE;IAEF,WAAW,UAAiB,MAAM,YAAY,MAAM,aAAa,MAAM,KAAG,QAAQ,MAAM,CAAC,CAgCxF;IAGD,aAAa,QAAS,MAAM,mBAG3B;IAED,mCAAmC,YAAmB,2CAA2C,WAAW,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAG,QAAQ,MAAM,CAAC,CAuGnJ;CACJ"}