@nsshunt/stsappframework 3.1.18 → 3.1.20
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/authutilsnode.js +15 -11
- package/dist/authutilsnode.js.map +1 -1
- package/package.json +1 -1
- package/src/authutilsnode.ts +20 -12
- package/types/authutilsnode.d.ts +6 -2
- package/types/authutilsnode.d.ts.map +1 -1
package/dist/authutilsnode.js
CHANGED
|
@@ -12,21 +12,25 @@ const jwks_rsa_1 = __importDefault(require("jwks-rsa"));
|
|
|
12
12
|
const axios_1 = __importDefault(require("axios"));
|
|
13
13
|
const stsconfig_1 = require("@nsshunt/stsconfig");
|
|
14
14
|
const goptions = (0, stsconfig_1.$Options)();
|
|
15
|
-
const debug_1 = __importDefault(require("debug"));
|
|
16
15
|
const stsutils_1 = require("@nsshunt/stsutils");
|
|
17
16
|
const errors_1 = require("./validation/errors");
|
|
18
17
|
const http_status_codes_1 = require("http-status-codes");
|
|
19
18
|
const chalk_1 = __importDefault(require("chalk"));
|
|
20
19
|
const stsinstrumentation_1 = require("@nsshunt/stsinstrumentation");
|
|
21
20
|
class AuthUtilsNode {
|
|
21
|
+
#options;
|
|
22
22
|
#cookiejar;
|
|
23
23
|
#httpsAgent = null;
|
|
24
|
-
#debug = (0, debug_1.default)(`proc:${process.pid}:AuthUtilsNode`);
|
|
25
24
|
// Regular expression to match the origin
|
|
26
25
|
#originRegex = /^(api:\/\/\w+)/;
|
|
27
|
-
constructor() {
|
|
26
|
+
constructor(options) {
|
|
27
|
+
this.#options = options;
|
|
28
28
|
this.#cookiejar = new tough_cookie_1.default.CookieJar();
|
|
29
29
|
}
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
#LogDebugMessage(message) {
|
|
32
|
+
this.#options.logger.debug(message);
|
|
33
|
+
}
|
|
30
34
|
#GetHttpsAgent = () => {
|
|
31
35
|
if (this.#httpsAgent === null) {
|
|
32
36
|
// https://nodejs.org/api/http.html#class-httpagent
|
|
@@ -41,14 +45,14 @@ class AuthUtilsNode {
|
|
|
41
45
|
}
|
|
42
46
|
return this.#httpsAgent;
|
|
43
47
|
};
|
|
44
|
-
VerifyRequestMiddlewareFactory(
|
|
48
|
+
VerifyRequestMiddlewareFactory = () => {
|
|
45
49
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
-
return async
|
|
47
|
-
if (options.permissions) {
|
|
50
|
+
return async (req, res, next) => {
|
|
51
|
+
if (this.#options.permissions) {
|
|
48
52
|
const scopes = req.auth.scope.split(' ');
|
|
49
53
|
const requiredPermissions = [];
|
|
50
|
-
for (let i = 0; i < options.permissions.length; i++) {
|
|
51
|
-
const permission = options.permissions[i];
|
|
54
|
+
for (let i = 0; i < this.#options.permissions.length; i++) {
|
|
55
|
+
const permission = this.#options.permissions[i];
|
|
52
56
|
if (!scopes.includes(permission)) {
|
|
53
57
|
requiredPermissions.push(permission);
|
|
54
58
|
}
|
|
@@ -61,7 +65,7 @@ class AuthUtilsNode {
|
|
|
61
65
|
}
|
|
62
66
|
next();
|
|
63
67
|
};
|
|
64
|
-
}
|
|
68
|
+
};
|
|
65
69
|
/*
|
|
66
70
|
let cookies = await this.GetCookiesFromJar();
|
|
67
71
|
const valid = this.#ValidateCookies(cookies);
|
|
@@ -157,7 +161,7 @@ class AuthUtilsNode {
|
|
|
157
161
|
GetAPITokenFromAuthServerUsingScope = async (options, errorCb) => {
|
|
158
162
|
const { scope, clientId, authClientSecret, endPoint, instrumentController } = options;
|
|
159
163
|
const invokeErrorCb = (error) => {
|
|
160
|
-
this.#
|
|
164
|
+
this.#LogDebugMessage(error);
|
|
161
165
|
if (instrumentController) {
|
|
162
166
|
instrumentController.UpdateInstrument(stsinstrumentation_1.Gauge.AUTHENTICATION_ERROR_COUNT_GAUGE, {
|
|
163
167
|
Inc: 1
|
|
@@ -219,7 +223,7 @@ class AuthUtilsNode {
|
|
|
219
223
|
if (retVal.status) {
|
|
220
224
|
if (retVal.status !== 200) {
|
|
221
225
|
// Just provide a warning here
|
|
222
|
-
this.#
|
|
226
|
+
this.#LogDebugMessage(chalk_1.default.magenta(`Error (AuthUtilsNode:GetAPITokenFromServer): Invalid response from server: [${retVal.status}]`));
|
|
223
227
|
}
|
|
224
228
|
}
|
|
225
229
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authutilsnode.js","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAiC;AACjC,kDAAyB;AACzB,gEAA+B;AAC/B,2CAAuC;AACvC,wDAAkC;AAElC,kDAA0B;AAE1B,kDAA6C;AAC7C,MAAM,QAAQ,GAAG,IAAA,oBAAQ,GAAE,CAAA;AAE3B,
|
|
1
|
+
{"version":3,"file":"authutilsnode.js","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/authutilsnode.ts
CHANGED
|
@@ -9,9 +9,7 @@ import axios from 'axios';
|
|
|
9
9
|
import { $Options } from '@nsshunt/stsconfig'
|
|
10
10
|
const goptions = $Options()
|
|
11
11
|
|
|
12
|
-
import
|
|
13
|
-
|
|
14
|
-
import { GetErrorPayload, JSONObject } from '@nsshunt/stsutils'
|
|
12
|
+
import { GetErrorPayload, ISTSLogger, JSONObject } from '@nsshunt/stsutils'
|
|
15
13
|
|
|
16
14
|
import { AppFrameworkErrorCode } from './validation/errors'
|
|
17
15
|
|
|
@@ -24,6 +22,7 @@ import { Gauge } from '@nsshunt/stsinstrumentation'
|
|
|
24
22
|
|
|
25
23
|
export interface IAuthUtilsNodeOptions {
|
|
26
24
|
permissions: string[]
|
|
25
|
+
logger: ISTSLogger
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
/*
|
|
@@ -54,18 +53,27 @@ export interface IGetAPITokenFromAuthServerUsingScopeOptions {
|
|
|
54
53
|
instrumentController?: PublishInstrumentControllerV2
|
|
55
54
|
}
|
|
56
55
|
|
|
56
|
+
export interface IAuthUtilsNodeOptions {
|
|
57
|
+
}
|
|
58
|
+
|
|
57
59
|
export class AuthUtilsNode
|
|
58
60
|
{
|
|
61
|
+
#options: IAuthUtilsNodeOptions
|
|
59
62
|
#cookiejar: tough.CookieJar;
|
|
60
63
|
#httpsAgent: https.Agent | null = null;
|
|
61
|
-
#debug = debugModule(`proc:${process.pid}:AuthUtilsNode`);
|
|
62
64
|
// Regular expression to match the origin
|
|
63
65
|
#originRegex = /^(api:\/\/\w+)/;
|
|
64
66
|
|
|
65
|
-
constructor() {
|
|
67
|
+
constructor(options: IAuthUtilsNodeOptions) {
|
|
68
|
+
this.#options = options;
|
|
66
69
|
this.#cookiejar = new tough.CookieJar();
|
|
67
70
|
}
|
|
68
71
|
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
73
|
+
#LogDebugMessage(message: any) {
|
|
74
|
+
this.#options.logger.debug(message);
|
|
75
|
+
}
|
|
76
|
+
|
|
69
77
|
#GetHttpsAgent = () =>
|
|
70
78
|
{
|
|
71
79
|
if (this.#httpsAgent === null) {
|
|
@@ -82,14 +90,14 @@ export class AuthUtilsNode
|
|
|
82
90
|
return this.#httpsAgent;
|
|
83
91
|
}
|
|
84
92
|
|
|
85
|
-
VerifyRequestMiddlewareFactory(
|
|
93
|
+
VerifyRequestMiddlewareFactory = () => {
|
|
86
94
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
|
-
return async
|
|
88
|
-
if (options.permissions) {
|
|
95
|
+
return async (req: any, res: any, next: any) => {
|
|
96
|
+
if (this.#options.permissions) {
|
|
89
97
|
const scopes = req.auth.scope.split(' ');
|
|
90
98
|
const requiredPermissions = [ ];
|
|
91
|
-
for (let i=0; i < options.permissions.length; i++) {
|
|
92
|
-
const permission = options.permissions[i];
|
|
99
|
+
for (let i=0; i < this.#options.permissions.length; i++) {
|
|
100
|
+
const permission = this.#options.permissions[i];
|
|
93
101
|
if (!scopes.includes(permission)) {
|
|
94
102
|
requiredPermissions.push(permission);
|
|
95
103
|
}
|
|
@@ -213,7 +221,7 @@ export class AuthUtilsNode
|
|
|
213
221
|
const { scope, clientId, authClientSecret, endPoint, instrumentController } = options;
|
|
214
222
|
|
|
215
223
|
const invokeErrorCb = (error: Error) => {
|
|
216
|
-
this.#
|
|
224
|
+
this.#LogDebugMessage(error);
|
|
217
225
|
if (instrumentController) {
|
|
218
226
|
instrumentController.UpdateInstrument(Gauge.AUTHENTICATION_ERROR_COUNT_GAUGE, { // auth error
|
|
219
227
|
Inc: 1
|
|
@@ -276,7 +284,7 @@ export class AuthUtilsNode
|
|
|
276
284
|
if (retVal.status) {
|
|
277
285
|
if (retVal.status !== 200) {
|
|
278
286
|
// Just provide a warning here
|
|
279
|
-
this.#
|
|
287
|
+
this.#LogDebugMessage(chalk.magenta(`Error (AuthUtilsNode:GetAPITokenFromServer): Invalid response from server: [${retVal.status}]`));
|
|
280
288
|
}
|
|
281
289
|
} else {
|
|
282
290
|
invokeErrorCb(new Error(chalk.red(`Error (AuthUtilsNode:GetAPITokenFromServer:No retVal.status)`)));
|
package/types/authutilsnode.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import tough from 'tough-cookie';
|
|
2
|
+
import { ISTSLogger } from '@nsshunt/stsutils';
|
|
2
3
|
import { PublishInstrumentControllerV2 } from '@nsshunt/stspublisherserver';
|
|
3
4
|
export interface IAuthUtilsNodeOptions {
|
|
4
5
|
permissions: string[];
|
|
6
|
+
logger: ISTSLogger;
|
|
5
7
|
}
|
|
6
8
|
export interface IGetAPITokenFromAuthServerUsingScopeOptions {
|
|
7
9
|
clientId: string;
|
|
@@ -10,10 +12,12 @@ export interface IGetAPITokenFromAuthServerUsingScopeOptions {
|
|
|
10
12
|
endPoint: string;
|
|
11
13
|
instrumentController?: PublishInstrumentControllerV2;
|
|
12
14
|
}
|
|
15
|
+
export interface IAuthUtilsNodeOptions {
|
|
16
|
+
}
|
|
13
17
|
export declare class AuthUtilsNode {
|
|
14
18
|
#private;
|
|
15
|
-
constructor();
|
|
16
|
-
VerifyRequestMiddlewareFactory
|
|
19
|
+
constructor(options: IAuthUtilsNodeOptions);
|
|
20
|
+
VerifyRequestMiddlewareFactory: () => (req: any, res: any, next: any) => Promise<void>;
|
|
17
21
|
verifyRequestMiddleware(req: any, res: any, next: any): Promise<void>;
|
|
18
22
|
SetCookiesToJar: (headers: Record<string, any>, endpoint: string) => Promise<tough.Cookie[]>;
|
|
19
23
|
GetCookiesFromJar: (endpoint: string) => Promise<tough.Cookie[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authutilsnode.d.ts","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"authutilsnode.d.ts","sourceRoot":"","sources":["../src/authutilsnode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AAWjC,OAAO,EAAmB,UAAU,EAAc,MAAM,mBAAmB,CAAA;AAQ3E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAG3E,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,EAAE,UAAU,CAAA;CACrB;AAsBD,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,6BAA6B,CAAA;CACvD;AAED,MAAM,WAAW,qBAAqB;CACrC;AAED,qBAAa,aAAa;;gBAQV,OAAO,EAAE,qBAAqB;IA0B1C,8BAA8B,cAEP,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,mBAAmB,KAAK,KAAK,IAAI,KAAG,QAAQ,MAAM,CAAC,CAuGnJ;CA4FJ"}
|