@api-client/core 0.8.14 → 0.8.15
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/build/src/authorization/lib/SecurityProcessor.d.ts +26 -1
- package/build/src/authorization/lib/SecurityProcessor.js +120 -10
- package/build/src/authorization/lib/SecurityProcessor.js.map +1 -1
- package/build/src/authorization/lib/Utils.d.ts +3 -0
- package/build/src/authorization/lib/Utils.js +3 -0
- package/build/src/authorization/lib/Utils.js.map +1 -1
- package/build/src/lib/headers/Headers.d.ts +10 -1
- package/build/src/lib/headers/Headers.js +20 -0
- package/build/src/lib/headers/Headers.js.map +1 -1
- package/build/src/models/HeadersArray.d.ts +2 -0
- package/build/src/models/HeadersArray.js +8 -0
- package/build/src/models/HeadersArray.js.map +1 -1
- package/package.json +1 -1
- package/src/authorization/lib/SecurityProcessor.ts +127 -11
- package/src/authorization/lib/Utils.ts +3 -0
- package/src/lib/headers/Headers.ts +23 -1
- package/src/models/HeadersArray.ts +9 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBasicAuthorization, IBearerAuthorization, IOAuth2Authorization, IOidcAuthorization } from "../../models/Authorization.js";
|
|
1
|
+
import { IApiKeyAuthorization, IBasicAuthorization, IBearerAuthorization, IOAuth2Authorization, IOidcAuthorization, IPassThroughAuthorization, IRamlCustomAuthorization } from "../../models/Authorization.js";
|
|
2
2
|
import { IRequestAuthorization, RequestAuthorization } from "../../models/RequestAuthorization.js";
|
|
3
3
|
import { IHttpRequest } from "../../models/HttpRequest.js";
|
|
4
4
|
export interface IAuthApplyOptions {
|
|
@@ -30,4 +30,29 @@ export declare class SecurityProcessor {
|
|
|
30
30
|
* Injects bearer auth header into the request headers.
|
|
31
31
|
*/
|
|
32
32
|
static applyBearer(request: IHttpRequest, config: IBearerAuthorization): void;
|
|
33
|
+
/**
|
|
34
|
+
* Injects the RAML custom configuration into the request
|
|
35
|
+
*/
|
|
36
|
+
static applyCustomAuth(request: IHttpRequest, config: IRamlCustomAuthorization): void;
|
|
37
|
+
/**
|
|
38
|
+
* Injects the ApiKey configuration into the request
|
|
39
|
+
*/
|
|
40
|
+
static applyApiKeys(request: IHttpRequest, config: IApiKeyAuthorization): void;
|
|
41
|
+
/**
|
|
42
|
+
* Injects the PassThrough configuration into the request
|
|
43
|
+
*/
|
|
44
|
+
static applyPassThrough(request: IHttpRequest, config: IPassThroughAuthorization): void;
|
|
45
|
+
static applyHeader(request: IHttpRequest, name: string, value: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* Applies a map of query parameters to the request object.
|
|
48
|
+
* @param request The request object
|
|
49
|
+
* @param params A map of query parameters to apply to the request
|
|
50
|
+
*/
|
|
51
|
+
static applyQueryParams(request: IHttpRequest, params?: Record<string, string>): void;
|
|
52
|
+
/**
|
|
53
|
+
* Applies a map of headers to the request object.
|
|
54
|
+
* @param request The request object
|
|
55
|
+
* @param headers A map of headers to apply to the request
|
|
56
|
+
*/
|
|
57
|
+
static applyHeaders(request: IHttpRequest, headers?: Record<string, string>): void;
|
|
33
58
|
}
|
|
@@ -2,7 +2,7 @@ import { Headers } from '../../lib/headers/Headers.js';
|
|
|
2
2
|
import { UrlProcessor } from "../../lib/parsers/UrlProcessor.js";
|
|
3
3
|
import { UrlEncoder } from "../../lib/parsers/UrlEncoder.js";
|
|
4
4
|
import { hasBuffer } from '../../Platform.js';
|
|
5
|
-
import { normalizeType, METHOD_BASIC, METHOD_BEARER, METHOD_OAUTH2, METHOD_OIDC, } from "./Utils.js";
|
|
5
|
+
import { normalizeType, METHOD_BASIC, METHOD_BEARER, METHOD_OAUTH2, METHOD_OIDC, METHOD_CUSTOM, METHOD_API_KEY, METHOD_PASS_THROUGH, } from "./Utils.js";
|
|
6
6
|
export class SecurityProcessor {
|
|
7
7
|
/**
|
|
8
8
|
* Applies authorization configuration to the request object.
|
|
@@ -40,6 +40,24 @@ export class SecurityProcessor {
|
|
|
40
40
|
auth.enabled = false;
|
|
41
41
|
}
|
|
42
42
|
break;
|
|
43
|
+
case METHOD_CUSTOM:
|
|
44
|
+
SecurityProcessor.applyCustomAuth(request, auth.config);
|
|
45
|
+
if (!opts.immutable) {
|
|
46
|
+
auth.enabled = false;
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
case METHOD_API_KEY:
|
|
50
|
+
SecurityProcessor.applyApiKeys(request, auth.config);
|
|
51
|
+
if (!opts.immutable) {
|
|
52
|
+
auth.enabled = false;
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
case METHOD_PASS_THROUGH:
|
|
56
|
+
SecurityProcessor.applyPassThrough(request, auth.config);
|
|
57
|
+
if (!opts.immutable) {
|
|
58
|
+
auth.enabled = false;
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
43
61
|
default:
|
|
44
62
|
}
|
|
45
63
|
}
|
|
@@ -54,9 +72,7 @@ export class SecurityProcessor {
|
|
|
54
72
|
}
|
|
55
73
|
const hash = `${username}:${password || ''}`;
|
|
56
74
|
const value = hasBuffer ? Buffer.from(hash).toString('base64') : btoa(hash);
|
|
57
|
-
|
|
58
|
-
headers.append('authorization', `Basic ${value}`);
|
|
59
|
-
request.headers = headers.toString();
|
|
75
|
+
this.applyHeader(request, 'authorization', `Basic ${value}`);
|
|
60
76
|
}
|
|
61
77
|
/**
|
|
62
78
|
* Injects oauth 2 auth header into the request headers.
|
|
@@ -68,9 +84,7 @@ export class SecurityProcessor {
|
|
|
68
84
|
}
|
|
69
85
|
const value = `${tokenType} ${accessToken}`;
|
|
70
86
|
if (deliveryMethod === 'header') {
|
|
71
|
-
|
|
72
|
-
headers.append(deliveryName, value);
|
|
73
|
-
request.headers = headers.toString();
|
|
87
|
+
this.applyHeader(request, deliveryName, value);
|
|
74
88
|
}
|
|
75
89
|
else if (deliveryMethod === 'query') {
|
|
76
90
|
const { url } = request;
|
|
@@ -110,9 +124,105 @@ export class SecurityProcessor {
|
|
|
110
124
|
return;
|
|
111
125
|
}
|
|
112
126
|
const value = `Bearer ${token}`;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
127
|
+
this.applyHeader(request, 'authorization', value);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Injects the RAML custom configuration into the request
|
|
131
|
+
*/
|
|
132
|
+
static applyCustomAuth(request, config) {
|
|
133
|
+
const { header, query } = config;
|
|
134
|
+
this.applyQueryParams(request, query);
|
|
135
|
+
this.applyHeaders(request, header);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Injects the ApiKey configuration into the request
|
|
139
|
+
*/
|
|
140
|
+
static applyApiKeys(request, config) {
|
|
141
|
+
const { header, query } = config;
|
|
142
|
+
this.applyQueryParams(request, query);
|
|
143
|
+
this.applyHeaders(request, header);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Injects the PassThrough configuration into the request
|
|
147
|
+
*/
|
|
148
|
+
static applyPassThrough(request, config) {
|
|
149
|
+
const { header, query } = config;
|
|
150
|
+
this.applyQueryParams(request, query);
|
|
151
|
+
this.applyHeaders(request, header);
|
|
152
|
+
}
|
|
153
|
+
static applyHeader(request, name, value) {
|
|
154
|
+
const { headers, headersModel } = request;
|
|
155
|
+
if (headersModel && !headers) {
|
|
156
|
+
const disabled = headersModel.filter(i => !i.enabled);
|
|
157
|
+
const parser = Headers.fromPropertyArray(headersModel.filter(i => !!i.enabled));
|
|
158
|
+
parser.append(name, value);
|
|
159
|
+
request.headersModel = [...parser.toPropertyArray(), ...disabled];
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const parser = new Headers(headers);
|
|
163
|
+
parser.append(name, value);
|
|
164
|
+
request.headers = parser.toString();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Applies a map of query parameters to the request object.
|
|
169
|
+
* @param request The request object
|
|
170
|
+
* @param params A map of query parameters to apply to the request
|
|
171
|
+
*/
|
|
172
|
+
static applyQueryParams(request, params) {
|
|
173
|
+
if (typeof params !== 'object') {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const keys = Object.keys(params);
|
|
177
|
+
if (!keys.length) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
const parser = new UrlProcessor(request.url);
|
|
182
|
+
keys.forEach((name) => {
|
|
183
|
+
const value = params[name];
|
|
184
|
+
parser.search.set(UrlEncoder.encodeQueryString(name, true), UrlEncoder.encodeQueryString(value, true));
|
|
185
|
+
});
|
|
186
|
+
request.url = parser.toString();
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
// ...
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Applies a map of headers to the request object.
|
|
194
|
+
* @param request The request object
|
|
195
|
+
* @param headers A map of headers to apply to the request
|
|
196
|
+
*/
|
|
197
|
+
static applyHeaders(request, headers) {
|
|
198
|
+
if (typeof headers !== 'object') {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const keys = Object.keys(headers);
|
|
202
|
+
if (!keys.length) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
let parser;
|
|
206
|
+
let disabled;
|
|
207
|
+
const usesModel = !!request.headersModel && !request.headers;
|
|
208
|
+
if (usesModel) {
|
|
209
|
+
const model = request.headersModel;
|
|
210
|
+
disabled = model.filter(i => !i.enabled);
|
|
211
|
+
parser = Headers.fromPropertyArray(model.filter(i => !!i.enabled));
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
parser = new Headers(request.headers);
|
|
215
|
+
}
|
|
216
|
+
keys.forEach((name) => {
|
|
217
|
+
const value = headers[name];
|
|
218
|
+
parser.append(name, value);
|
|
219
|
+
});
|
|
220
|
+
if (usesModel) {
|
|
221
|
+
request.headersModel = [...parser.toPropertyArray(), ...(disabled || [])];
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
request.headers = parser.toString();
|
|
225
|
+
}
|
|
116
226
|
}
|
|
117
227
|
}
|
|
118
228
|
//# sourceMappingURL=SecurityProcessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityProcessor.js","sourceRoot":"","sources":["../../../../src/authorization/lib/SecurityProcessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SecurityProcessor.js","sourceRoot":"","sources":["../../../../src/authorization/lib/SecurityProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,9 @@ export declare const METHOD_DIGEST = "digest";
|
|
|
12
12
|
export declare const METHOD_OAUTH2 = "oauth 2";
|
|
13
13
|
export declare const METHOD_OIDC = "open id";
|
|
14
14
|
export declare const METHOD_CC = "client certificate";
|
|
15
|
+
export declare const METHOD_API_KEY = "api key";
|
|
16
|
+
export declare const METHOD_CUSTOM = "custom";
|
|
17
|
+
export declare const METHOD_PASS_THROUGH = "pass through";
|
|
15
18
|
export declare const CUSTOM_CREDENTIALS = "Custom credentials";
|
|
16
19
|
/**
|
|
17
20
|
* @param value The value to validate
|
|
@@ -12,6 +12,9 @@ export const METHOD_DIGEST = "digest";
|
|
|
12
12
|
export const METHOD_OAUTH2 = "oauth 2";
|
|
13
13
|
export const METHOD_OIDC = "open id";
|
|
14
14
|
export const METHOD_CC = 'client certificate';
|
|
15
|
+
export const METHOD_API_KEY = "api key";
|
|
16
|
+
export const METHOD_CUSTOM = "custom";
|
|
17
|
+
export const METHOD_PASS_THROUGH = "pass through";
|
|
15
18
|
export const CUSTOM_CREDENTIALS = "Custom credentials";
|
|
16
19
|
/**
|
|
17
20
|
* @param value The value to validate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../src/authorization/lib/Utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../src/authorization/lib/Utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAa,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAEnF,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,oBAAoB,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,MAAM,GAAG,KAAK,CAAC;KAChB;IACD,4EAA4E;IAC5E,gFAAgF;IAChF,yDAAyD;IACzD,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YACrF,MAAM,GAAG,KAAK,CAAC;SAChB;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG,kBAAkB,CAAC;IACtC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9D,KAAK,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KAC3C;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,sCAAsC,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;KACtE;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY,EAAE,OAAgB;IACzD,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,EAAE,CAAC;KACX;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,MAAM,CAAC;KACf;IACD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACrB,IAAI,GAAG,GAAG,OAAO,CAAC;QAClB,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YAC/B,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC;KAC1B;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import http from 'http';
|
|
3
|
+
import { IProperty } from '../../models/Property.js';
|
|
3
4
|
interface RawValue {
|
|
4
5
|
name: string;
|
|
5
6
|
value: string;
|
|
@@ -50,7 +51,7 @@ export declare class Headers {
|
|
|
50
51
|
* @param callbackfn A function that accepts up to two arguments. The map method calls the callbackfn function one time for each header.
|
|
51
52
|
* @param thisArg An object to which the `this` keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
|
|
52
53
|
*/
|
|
53
|
-
map<U>(callbackfn: (
|
|
54
|
+
map<U>(callbackfn: (value: string, name: string, enabled: boolean) => U, thisArg?: unknown): U[];
|
|
54
55
|
/**
|
|
55
56
|
* @return The headers HTTP string
|
|
56
57
|
*/
|
|
@@ -59,6 +60,14 @@ export declare class Headers {
|
|
|
59
60
|
* @returns The HTTP headers string with `#` marks when the header is disabled
|
|
60
61
|
*/
|
|
61
62
|
toRawString(): string;
|
|
63
|
+
/**
|
|
64
|
+
* @param list The Property list to create the Headers from.
|
|
65
|
+
*/
|
|
66
|
+
static fromPropertyArray(list: IProperty[]): Headers;
|
|
67
|
+
/**
|
|
68
|
+
* Transforms current headers list to property list.
|
|
69
|
+
*/
|
|
70
|
+
toPropertyArray(): IProperty[];
|
|
62
71
|
protected _generateString(withDisabled?: boolean): string;
|
|
63
72
|
/**
|
|
64
73
|
* Iterates over keys.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Property } from '../../models/Property.js';
|
|
1
2
|
/**
|
|
2
3
|
* Normalizes name of a header.
|
|
3
4
|
*
|
|
@@ -182,6 +183,25 @@ export class Headers {
|
|
|
182
183
|
toRawString() {
|
|
183
184
|
return this._generateString(true);
|
|
184
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* @param list The Property list to create the Headers from.
|
|
188
|
+
*/
|
|
189
|
+
static fromPropertyArray(list) {
|
|
190
|
+
const result = new Headers();
|
|
191
|
+
list.forEach((prop) => {
|
|
192
|
+
result.append(prop.name, String(prop.value), prop.enabled);
|
|
193
|
+
});
|
|
194
|
+
return result;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Transforms current headers list to property list.
|
|
198
|
+
*/
|
|
199
|
+
toPropertyArray() {
|
|
200
|
+
return this.map((value, name, enabled) => {
|
|
201
|
+
const item = Property.String(name, value, enabled);
|
|
202
|
+
return item.toJSON();
|
|
203
|
+
});
|
|
204
|
+
}
|
|
185
205
|
_generateString(withDisabled = false) {
|
|
186
206
|
const result = [];
|
|
187
207
|
const keys = Object.keys(this._map);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../../src/lib/headers/Headers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../../src/lib/headers/Headers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IProperty, Property } from "./Property.js";
|
|
2
|
+
import { Headers } from '../lib/headers/Headers.js';
|
|
2
3
|
/**
|
|
3
4
|
* An array that specializes in keeping HTTP headers data.
|
|
4
5
|
* Unlike the `Headers` class, this can be serialized with the state.
|
|
@@ -6,6 +7,7 @@ import { IProperty, Property } from "./Property.js";
|
|
|
6
7
|
export declare class HeadersArray extends Array<Property> {
|
|
7
8
|
static fromHeaders(headersStr?: string): HeadersArray;
|
|
8
9
|
static from(arrayLike: ArrayLike<IProperty>): HeadersArray;
|
|
10
|
+
toHeaders(): Headers;
|
|
9
11
|
/**
|
|
10
12
|
* Overrides native toString to generate the headers string.
|
|
11
13
|
* @returns HTTP headers string.
|
|
@@ -20,6 +20,14 @@ export class HeadersArray extends Array {
|
|
|
20
20
|
arr.forEach((item) => result.push(new Property(item)));
|
|
21
21
|
return result;
|
|
22
22
|
}
|
|
23
|
+
toHeaders() {
|
|
24
|
+
const headers = new Headers();
|
|
25
|
+
this.forEach((item) => {
|
|
26
|
+
const header = item;
|
|
27
|
+
headers.append(header.name, header.value, header.enabled);
|
|
28
|
+
});
|
|
29
|
+
return headers;
|
|
30
|
+
}
|
|
23
31
|
/**
|
|
24
32
|
* Overrides native toString to generate the headers string.
|
|
25
33
|
* @returns HTTP headers string.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadersArray.js","sourceRoot":"","sources":["../../../src/models/HeadersArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAe;IAC/C,MAAM,CAAC,WAAW,CAAC,UAAmB;QACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACvC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAU,IAAI,CAAC,SAA+B;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACM,QAAQ;QACf,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,IAAgB,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,IAAgB,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"HeadersArray.js","sourceRoot":"","sources":["../../../src/models/HeadersArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAe;IAC/C,MAAM,CAAC,WAAW,CAAC,UAAmB;QACpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACvC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAU,IAAI,CAAC,SAA+B;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,IAAgB,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACM,QAAQ;QACf,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,IAAgB,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,MAAM,GAAG,IAAgB,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { IBasicAuthorization, IBearerAuthorization, IOAuth2Authorization, IOidcAuthorization, IOidcTokenInfo } from "../../models/Authorization.js";
|
|
1
|
+
import { IApiKeyAuthorization, IBasicAuthorization, IBearerAuthorization, IOAuth2Authorization, IOidcAuthorization, IOidcTokenInfo, IPassThroughAuthorization, IRamlCustomAuthorization } from "../../models/Authorization.js";
|
|
2
2
|
import { IRequestAuthorization, RequestAuthorization } from "../../models/RequestAuthorization.js";
|
|
3
3
|
import { IHttpRequest } from "../../models/HttpRequest.js";
|
|
4
|
+
import { IProperty } from "../../models/Property.js";
|
|
4
5
|
import { Headers } from '../../lib/headers/Headers.js';
|
|
5
6
|
import { UrlProcessor } from "../../lib/parsers/UrlProcessor.js";
|
|
6
7
|
import { UrlEncoder } from "../../lib/parsers/UrlEncoder.js";
|
|
@@ -11,6 +12,9 @@ import {
|
|
|
11
12
|
METHOD_BEARER,
|
|
12
13
|
METHOD_OAUTH2,
|
|
13
14
|
METHOD_OIDC,
|
|
15
|
+
METHOD_CUSTOM,
|
|
16
|
+
METHOD_API_KEY,
|
|
17
|
+
METHOD_PASS_THROUGH,
|
|
14
18
|
} from "./Utils.js";
|
|
15
19
|
|
|
16
20
|
export interface IAuthApplyOptions {
|
|
@@ -61,6 +65,24 @@ export class SecurityProcessor {
|
|
|
61
65
|
auth.enabled = false;
|
|
62
66
|
}
|
|
63
67
|
break;
|
|
68
|
+
case METHOD_CUSTOM:
|
|
69
|
+
SecurityProcessor.applyCustomAuth(request, (auth.config as IRamlCustomAuthorization));
|
|
70
|
+
if (!opts.immutable) {
|
|
71
|
+
auth.enabled = false;
|
|
72
|
+
}
|
|
73
|
+
break;
|
|
74
|
+
case METHOD_API_KEY:
|
|
75
|
+
SecurityProcessor.applyApiKeys(request, (auth.config as IApiKeyAuthorization));
|
|
76
|
+
if (!opts.immutable) {
|
|
77
|
+
auth.enabled = false;
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case METHOD_PASS_THROUGH:
|
|
81
|
+
SecurityProcessor.applyPassThrough(request, (auth.config as IPassThroughAuthorization));
|
|
82
|
+
if (!opts.immutable) {
|
|
83
|
+
auth.enabled = false;
|
|
84
|
+
}
|
|
85
|
+
break;
|
|
64
86
|
default:
|
|
65
87
|
}
|
|
66
88
|
}
|
|
@@ -76,10 +98,7 @@ export class SecurityProcessor {
|
|
|
76
98
|
}
|
|
77
99
|
const hash = `${username}:${password || ''}`;
|
|
78
100
|
const value = hasBuffer ? Buffer.from(hash).toString('base64') : btoa(hash);
|
|
79
|
-
|
|
80
|
-
const headers = new Headers(request.headers || '');
|
|
81
|
-
headers.append('authorization', `Basic ${value}`);
|
|
82
|
-
request.headers = headers.toString();
|
|
101
|
+
this.applyHeader(request, 'authorization', `Basic ${value}`);
|
|
83
102
|
}
|
|
84
103
|
|
|
85
104
|
/**
|
|
@@ -92,9 +111,7 @@ export class SecurityProcessor {
|
|
|
92
111
|
}
|
|
93
112
|
const value = `${tokenType} ${accessToken}`;
|
|
94
113
|
if (deliveryMethod === 'header') {
|
|
95
|
-
|
|
96
|
-
headers.append(deliveryName, value);
|
|
97
|
-
request.headers = headers.toString();
|
|
114
|
+
this.applyHeader(request, deliveryName, value);
|
|
98
115
|
} else if (deliveryMethod === 'query') {
|
|
99
116
|
const { url } = request;
|
|
100
117
|
try {
|
|
@@ -133,9 +150,108 @@ export class SecurityProcessor {
|
|
|
133
150
|
return;
|
|
134
151
|
}
|
|
135
152
|
const value = `Bearer ${token}`;
|
|
153
|
+
this.applyHeader(request, 'authorization', value);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Injects the RAML custom configuration into the request
|
|
158
|
+
*/
|
|
159
|
+
static applyCustomAuth(request: IHttpRequest, config: IRamlCustomAuthorization): void {
|
|
160
|
+
const { header, query } = config;
|
|
161
|
+
this.applyQueryParams(request, query);
|
|
162
|
+
this.applyHeaders(request, header);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Injects the ApiKey configuration into the request
|
|
167
|
+
*/
|
|
168
|
+
static applyApiKeys(request: IHttpRequest, config: IApiKeyAuthorization): void {
|
|
169
|
+
const { header, query } = config;
|
|
170
|
+
this.applyQueryParams(request, query);
|
|
171
|
+
this.applyHeaders(request, header);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Injects the PassThrough configuration into the request
|
|
176
|
+
*/
|
|
177
|
+
static applyPassThrough(request: IHttpRequest, config: IPassThroughAuthorization): void {
|
|
178
|
+
const { header, query } = config;
|
|
179
|
+
this.applyQueryParams(request, query);
|
|
180
|
+
this.applyHeaders(request, header);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
static applyHeader(request: IHttpRequest, name: string, value: string): void {
|
|
184
|
+
const { headers, headersModel } = request;
|
|
185
|
+
if (headersModel && !headers) {
|
|
186
|
+
const disabled = headersModel.filter(i => !i.enabled);
|
|
187
|
+
const parser = Headers.fromPropertyArray(headersModel.filter(i => !!i.enabled));
|
|
188
|
+
parser.append(name, value);
|
|
189
|
+
request.headersModel = [...parser.toPropertyArray(), ...disabled];
|
|
190
|
+
} else {
|
|
191
|
+
const parser = new Headers(headers);
|
|
192
|
+
parser.append(name, value);
|
|
193
|
+
request.headers = parser.toString();
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Applies a map of query parameters to the request object.
|
|
199
|
+
* @param request The request object
|
|
200
|
+
* @param params A map of query parameters to apply to the request
|
|
201
|
+
*/
|
|
202
|
+
static applyQueryParams(request: IHttpRequest, params?: Record<string, string>): void {
|
|
203
|
+
if (typeof params !== 'object') {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const keys = Object.keys(params);
|
|
207
|
+
if (!keys.length) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
136
210
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
211
|
+
try {
|
|
212
|
+
const parser = new UrlProcessor(request.url);
|
|
213
|
+
keys.forEach((name) => {
|
|
214
|
+
const value = params[name];
|
|
215
|
+
parser.search.set(UrlEncoder.encodeQueryString(name, true), UrlEncoder.encodeQueryString(value, true));
|
|
216
|
+
});
|
|
217
|
+
request.url = parser.toString();
|
|
218
|
+
} catch (e) {
|
|
219
|
+
// ...
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Applies a map of headers to the request object.
|
|
225
|
+
* @param request The request object
|
|
226
|
+
* @param headers A map of headers to apply to the request
|
|
227
|
+
*/
|
|
228
|
+
static applyHeaders(request: IHttpRequest, headers?: Record<string, string>): void {
|
|
229
|
+
if (typeof headers !== 'object') {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
const keys = Object.keys(headers);
|
|
233
|
+
if (!keys.length) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
let parser: Headers;
|
|
238
|
+
let disabled: IProperty[] | undefined;
|
|
239
|
+
const usesModel = !!request.headersModel && !request.headers;
|
|
240
|
+
if (usesModel) {
|
|
241
|
+
const model = request.headersModel as IProperty[];
|
|
242
|
+
disabled = model.filter(i => !i.enabled);
|
|
243
|
+
parser = Headers.fromPropertyArray(model.filter(i => !!i.enabled));
|
|
244
|
+
} else {
|
|
245
|
+
parser = new Headers(request.headers);
|
|
246
|
+
}
|
|
247
|
+
keys.forEach((name) => {
|
|
248
|
+
const value = headers[name];
|
|
249
|
+
parser.append(name, value);
|
|
250
|
+
});
|
|
251
|
+
if (usesModel) {
|
|
252
|
+
request.headersModel = [...parser.toPropertyArray(), ...(disabled || [])];
|
|
253
|
+
} else {
|
|
254
|
+
request.headers = parser.toString();
|
|
255
|
+
}
|
|
140
256
|
}
|
|
141
257
|
}
|
|
@@ -13,6 +13,9 @@ export const METHOD_DIGEST = "digest";
|
|
|
13
13
|
export const METHOD_OAUTH2 = "oauth 2";
|
|
14
14
|
export const METHOD_OIDC = "open id";
|
|
15
15
|
export const METHOD_CC = 'client certificate';
|
|
16
|
+
export const METHOD_API_KEY = "api key";
|
|
17
|
+
export const METHOD_CUSTOM = "custom";
|
|
18
|
+
export const METHOD_PASS_THROUGH = "pass through";
|
|
16
19
|
export const CUSTOM_CREDENTIALS = "Custom credentials";
|
|
17
20
|
|
|
18
21
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import http from 'http';
|
|
2
|
+
import { IProperty, Property } from '../../models/Property.js';
|
|
2
3
|
|
|
3
4
|
/* eslint-disable no-unused-vars */
|
|
4
5
|
interface RawValue {
|
|
@@ -177,7 +178,7 @@ export class Headers {
|
|
|
177
178
|
* @param callbackfn A function that accepts up to two arguments. The map method calls the callbackfn function one time for each header.
|
|
178
179
|
* @param thisArg An object to which the `this` keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
|
|
179
180
|
*/
|
|
180
|
-
map<U>(callbackfn: (
|
|
181
|
+
map<U>(callbackfn: (value: string, name: string, enabled: boolean) => U, thisArg?: unknown): U[] {
|
|
181
182
|
const keys = Object.keys(this._map);
|
|
182
183
|
const results: U[] = [];
|
|
183
184
|
for (const name of keys) {
|
|
@@ -202,6 +203,27 @@ export class Headers {
|
|
|
202
203
|
return this._generateString(true);
|
|
203
204
|
}
|
|
204
205
|
|
|
206
|
+
/**
|
|
207
|
+
* @param list The Property list to create the Headers from.
|
|
208
|
+
*/
|
|
209
|
+
static fromPropertyArray(list: IProperty[]): Headers {
|
|
210
|
+
const result = new Headers();
|
|
211
|
+
list.forEach((prop) => {
|
|
212
|
+
result.append(prop.name, String(prop.value), prop.enabled);
|
|
213
|
+
});
|
|
214
|
+
return result;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Transforms current headers list to property list.
|
|
219
|
+
*/
|
|
220
|
+
toPropertyArray(): IProperty[] {
|
|
221
|
+
return this.map((value, name, enabled) => {
|
|
222
|
+
const item = Property.String(name, value, enabled);
|
|
223
|
+
return item.toJSON();
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
|
|
205
227
|
protected _generateString(withDisabled = false): string {
|
|
206
228
|
const result: string[] = [];
|
|
207
229
|
const keys = Object.keys(this._map);
|
|
@@ -23,6 +23,15 @@ export class HeadersArray extends Array<Property> {
|
|
|
23
23
|
return result;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
toHeaders(): Headers {
|
|
27
|
+
const headers = new Headers();
|
|
28
|
+
this.forEach((item) => {
|
|
29
|
+
const header = item as Property;
|
|
30
|
+
headers.append(header.name, header.value as string, header.enabled);
|
|
31
|
+
});
|
|
32
|
+
return headers;
|
|
33
|
+
}
|
|
34
|
+
|
|
26
35
|
/**
|
|
27
36
|
* Overrides native toString to generate the headers string.
|
|
28
37
|
* @returns HTTP headers string.
|