soap 0.27.1 → 0.31.0
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/History.md +48 -0
- package/Readme.md +295 -7
- package/lib/client.d.ts +3 -2
- package/lib/client.js +73 -45
- package/lib/client.js.map +1 -1
- package/lib/http.d.ts +2 -1
- package/lib/http.js +14 -2
- package/lib/http.js.map +1 -1
- package/lib/security/WSSecurityCert.d.ts +13 -0
- package/lib/security/WSSecurityCert.js +32 -3
- package/lib/security/WSSecurityCert.js.map +1 -1
- package/lib/server.d.ts +5 -2
- package/lib/server.js +38 -7
- package/lib/server.js.map +1 -1
- package/lib/soap.d.ts +2 -1
- package/lib/soap.js +2 -0
- package/lib/soap.js.map +1 -1
- package/lib/types.d.ts +2 -2
- package/lib/wsdl/elements.d.ts +2 -2
- package/lib/wsdl/elements.js +19 -4
- package/lib/wsdl/elements.js.map +1 -1
- package/lib/wsdl/index.d.ts +1 -0
- package/lib/wsdl/index.js +60 -39
- package/lib/wsdl/index.js.map +1 -1
- package/package.json +9 -9
package/lib/client.js
CHANGED
|
@@ -31,36 +31,32 @@ var nonIdentifierChars = /[^a-z$_0-9]/i;
|
|
|
31
31
|
var Client = /** @class */ (function (_super) {
|
|
32
32
|
__extends(Client, _super);
|
|
33
33
|
function Client(wsdl, endpoint, options) {
|
|
34
|
-
var
|
|
34
|
+
var _this_1 = _super.call(this) || this;
|
|
35
35
|
options = options || {};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
_this_1.wsdl = wsdl;
|
|
37
|
+
_this_1._initializeOptions(options);
|
|
38
|
+
_this_1._initializeServices(endpoint);
|
|
39
|
+
_this_1.httpClient = options.httpClient || new http_1.HttpClient(options);
|
|
40
40
|
var promiseOptions = { multiArgs: true };
|
|
41
41
|
if (options.overridePromiseSuffix) {
|
|
42
42
|
promiseOptions.suffix = options.overridePromiseSuffix;
|
|
43
43
|
}
|
|
44
|
-
BluebirdPromise.promisifyAll(
|
|
45
|
-
return
|
|
44
|
+
BluebirdPromise.promisifyAll(_this_1, promiseOptions);
|
|
45
|
+
return _this_1;
|
|
46
46
|
}
|
|
47
47
|
/** add soapHeader to soap:Header node */
|
|
48
48
|
Client.prototype.addSoapHeader = function (soapHeader, name, namespace, xmlns) {
|
|
49
49
|
if (!this.soapHeaders) {
|
|
50
50
|
this.soapHeaders = [];
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
soapHeader = this.wsdl.objectToXML(soapHeader, name, namespace, xmlns, true);
|
|
54
|
-
}
|
|
52
|
+
soapHeader = this._processSoapHeader(soapHeader, name, namespace, xmlns);
|
|
55
53
|
return this.soapHeaders.push(soapHeader) - 1;
|
|
56
54
|
};
|
|
57
55
|
Client.prototype.changeSoapHeader = function (index, soapHeader, name, namespace, xmlns) {
|
|
58
56
|
if (!this.soapHeaders) {
|
|
59
57
|
this.soapHeaders = [];
|
|
60
58
|
}
|
|
61
|
-
|
|
62
|
-
soapHeader = this.wsdl.objectToXML(soapHeader, name, namespace, xmlns, true);
|
|
63
|
-
}
|
|
59
|
+
soapHeader = this._processSoapHeader(soapHeader, name, namespace, xmlns);
|
|
64
60
|
this.soapHeaders[index] = soapHeader;
|
|
65
61
|
};
|
|
66
62
|
/** return all defined headers */
|
|
@@ -170,7 +166,7 @@ var Client = /** @class */ (function (_super) {
|
|
|
170
166
|
return def;
|
|
171
167
|
};
|
|
172
168
|
Client.prototype._defineMethod = function (method, location) {
|
|
173
|
-
var
|
|
169
|
+
var _this_1 = this;
|
|
174
170
|
var temp;
|
|
175
171
|
return function (args, callback, options, extraHeaders) {
|
|
176
172
|
if (typeof args === 'function') {
|
|
@@ -188,13 +184,34 @@ var Client = /** @class */ (function (_super) {
|
|
|
188
184
|
extraHeaders = options;
|
|
189
185
|
options = temp;
|
|
190
186
|
}
|
|
191
|
-
|
|
187
|
+
_this_1._invoke(method, args, location, function (error, result, rawResponse, soapHeader, rawRequest) {
|
|
192
188
|
callback(error, result, rawResponse, soapHeader, rawRequest);
|
|
193
189
|
}, options, extraHeaders);
|
|
194
190
|
};
|
|
195
191
|
};
|
|
192
|
+
Client.prototype._processSoapHeader = function (soapHeader, name, namespace, xmlns) {
|
|
193
|
+
switch (typeof soapHeader) {
|
|
194
|
+
case 'object':
|
|
195
|
+
return this.wsdl.objectToXML(soapHeader, name, namespace, xmlns, true);
|
|
196
|
+
case 'function':
|
|
197
|
+
var _this_2 = this;
|
|
198
|
+
// arrow function does not support arguments variable
|
|
199
|
+
// tslint:disable-next-line
|
|
200
|
+
return function () {
|
|
201
|
+
var result = soapHeader.apply(null, arguments);
|
|
202
|
+
if (typeof result === 'object') {
|
|
203
|
+
return _this_2.wsdl.objectToXML(result, name, namespace, xmlns, true);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
default:
|
|
210
|
+
return soapHeader;
|
|
211
|
+
}
|
|
212
|
+
};
|
|
196
213
|
Client.prototype._invoke = function (method, args, location, callback, options, extraHeaders) {
|
|
197
|
-
var
|
|
214
|
+
var _this_1 = this;
|
|
198
215
|
var name = method.$name;
|
|
199
216
|
var input = method.input;
|
|
200
217
|
var output = method.output;
|
|
@@ -224,7 +241,7 @@ var Client = /** @class */ (function (_super) {
|
|
|
224
241
|
var error = new Error('Error http status codes');
|
|
225
242
|
error.response = response;
|
|
226
243
|
error.body = body;
|
|
227
|
-
|
|
244
|
+
_this_1.emit('soapError', error, eid);
|
|
228
245
|
return callback(error, obj, body, obj.Header);
|
|
229
246
|
}
|
|
230
247
|
return callback(null, obj, body, obj.Header);
|
|
@@ -254,7 +271,7 @@ var Client = /** @class */ (function (_super) {
|
|
|
254
271
|
var parseSync = function (body, response) {
|
|
255
272
|
var obj;
|
|
256
273
|
try {
|
|
257
|
-
obj =
|
|
274
|
+
obj = _this_1.wsdl.xmlToObject(body);
|
|
258
275
|
}
|
|
259
276
|
catch (error) {
|
|
260
277
|
// When the output element cannot be looked up in the wsdl and the body is JSON
|
|
@@ -269,15 +286,11 @@ var Client = /** @class */ (function (_super) {
|
|
|
269
286
|
}
|
|
270
287
|
error.response = response;
|
|
271
288
|
error.body = body;
|
|
272
|
-
|
|
289
|
+
_this_1.emit('soapError', error, eid);
|
|
273
290
|
return callback(error, response, body, undefined, xml);
|
|
274
291
|
}
|
|
275
292
|
return finish(obj, body, response);
|
|
276
293
|
};
|
|
277
|
-
if (this.wsdl.options.forceSoap12Headers) {
|
|
278
|
-
headers['Content-Type'] = 'application/soap+xml; charset=utf-8';
|
|
279
|
-
xmlnsSoap = 'xmlns:' + envelopeKey + '="http://www.w3.org/2003/05/soap-envelope"';
|
|
280
|
-
}
|
|
281
294
|
if (this.SOAPAction) {
|
|
282
295
|
soapAction = this.SOAPAction;
|
|
283
296
|
}
|
|
@@ -287,7 +300,11 @@ var Client = /** @class */ (function (_super) {
|
|
|
287
300
|
else {
|
|
288
301
|
soapAction = ((ns.lastIndexOf('/') !== ns.length - 1) ? ns + '/' : ns) + name;
|
|
289
302
|
}
|
|
290
|
-
if (
|
|
303
|
+
if (this.wsdl.options.forceSoap12Headers) {
|
|
304
|
+
headers['Content-Type'] = "application/soap+xml; charset=utf-8; action=\"" + soapAction + "\"";
|
|
305
|
+
xmlnsSoap = 'xmlns:' + envelopeKey + '="http://www.w3.org/2003/05/soap-envelope"';
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
291
308
|
headers.SOAPAction = '"' + soapAction + '"';
|
|
292
309
|
}
|
|
293
310
|
options = options || {};
|
|
@@ -315,15 +332,26 @@ var Client = /** @class */ (function (_super) {
|
|
|
315
332
|
// pass `input.$lookupType` if `input.$type` could not be found
|
|
316
333
|
message = this.wsdl.objectToDocumentXML(input.$name, args, input.targetNSAlias, input.targetNamespace, (input.$type || input.$lookupType));
|
|
317
334
|
}
|
|
335
|
+
var decodedHeaders;
|
|
336
|
+
if (this.soapHeaders) {
|
|
337
|
+
decodedHeaders = this.soapHeaders.map(function (header) {
|
|
338
|
+
if (typeof header === 'function') {
|
|
339
|
+
return header(method, location, soapAction, args);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
return header;
|
|
343
|
+
}
|
|
344
|
+
}).join(' ');
|
|
345
|
+
}
|
|
318
346
|
xml = '<?xml version="1.0" encoding="utf-8"?>' +
|
|
319
347
|
'<' + envelopeKey + ':Envelope ' +
|
|
320
348
|
xmlnsSoap + ' ' +
|
|
321
349
|
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
|
|
322
350
|
encoding +
|
|
323
351
|
this.wsdl.xmlnsInEnvelope + '>' +
|
|
324
|
-
((
|
|
325
|
-
('<' + envelopeKey + ':Header>' +
|
|
326
|
-
(
|
|
352
|
+
((decodedHeaders || this.security) ?
|
|
353
|
+
('<' + envelopeKey + ':Header' + (this.wsdl.xmlnsInHeader ? (' ' + this.wsdl.xmlnsInHeader) : '') + '>' +
|
|
354
|
+
(decodedHeaders ? decodedHeaders : '') +
|
|
327
355
|
(this.security && !this.security.postProcess ? this.security.toXML() : '') +
|
|
328
356
|
'</' + envelopeKey + ':Header>')
|
|
329
357
|
:
|
|
@@ -361,10 +389,10 @@ var Client = /** @class */ (function (_super) {
|
|
|
361
389
|
req = this.httpClient.requestStream(location, xml, headers, options, this);
|
|
362
390
|
this.lastRequestHeaders = req.headers;
|
|
363
391
|
var onError_1 = function (err) {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
392
|
+
_this_1.lastResponse = null;
|
|
393
|
+
_this_1.lastResponseHeaders = null;
|
|
394
|
+
_this_1.lastElapsedTime = null;
|
|
395
|
+
_this_1.emit('response', null, null, eid);
|
|
368
396
|
callback(err, undefined, undefined, undefined, xml);
|
|
369
397
|
};
|
|
370
398
|
req.on('error', onError_1);
|
|
@@ -374,23 +402,23 @@ var Client = /** @class */ (function (_super) {
|
|
|
374
402
|
// don't stream
|
|
375
403
|
if (response.statusCode !== 200 || !output || !output.$lookupTypes) {
|
|
376
404
|
response.pipe(concatStream({ encoding: 'string' }, function (body) {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
405
|
+
_this_1.lastResponse = body;
|
|
406
|
+
_this_1.lastResponseHeaders = response && response.headers;
|
|
407
|
+
_this_1.lastElapsedTime = Date.now() - startTime_1;
|
|
408
|
+
_this_1.emit('response', body, response, eid);
|
|
381
409
|
return parseSync(body, response);
|
|
382
410
|
}));
|
|
383
411
|
return;
|
|
384
412
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
413
|
+
_this_1.wsdl.xmlToObject(response, function (error, obj) {
|
|
414
|
+
_this_1.lastResponse = response;
|
|
415
|
+
_this_1.lastResponseHeaders = response && response.headers;
|
|
416
|
+
_this_1.lastElapsedTime = Date.now() - startTime_1;
|
|
417
|
+
_this_1.emit('response', '<stream>', response, eid);
|
|
390
418
|
if (error) {
|
|
391
419
|
error.response = response;
|
|
392
420
|
error.body = '<stream>';
|
|
393
|
-
|
|
421
|
+
_this_1.emit('soapError', error, eid);
|
|
394
422
|
return callback(error, response, undefined, undefined, xml);
|
|
395
423
|
}
|
|
396
424
|
return finish(obj, '<stream>', response);
|
|
@@ -399,10 +427,10 @@ var Client = /** @class */ (function (_super) {
|
|
|
399
427
|
return;
|
|
400
428
|
}
|
|
401
429
|
req = this.httpClient.request(location, xml, function (err, response, body) {
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
430
|
+
_this_1.lastResponse = body;
|
|
431
|
+
_this_1.lastResponseHeaders = response && response.headers;
|
|
432
|
+
_this_1.lastElapsedTime = response && response.elapsedTime;
|
|
433
|
+
_this_1.emit('response', body, response, eid);
|
|
406
434
|
if (err) {
|
|
407
435
|
callback(err, undefined, undefined, undefined, xml);
|
|
408
436
|
}
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/lib/http.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import * as req from 'request';
|
|
2
3
|
import { IHeaders, IOptions } from './types';
|
|
3
4
|
export interface IExOptions {
|
|
@@ -7,7 +8,7 @@ export interface IAttachment {
|
|
|
7
8
|
name: string;
|
|
8
9
|
contentId: string;
|
|
9
10
|
mimetype: string;
|
|
10
|
-
body: ReadableStream;
|
|
11
|
+
body: NodeJS.ReadableStream;
|
|
11
12
|
}
|
|
12
13
|
export declare type Request = req.Request;
|
|
13
14
|
/**
|
package/lib/http.js
CHANGED
|
@@ -50,7 +50,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
50
50
|
};
|
|
51
51
|
var mergeOptions = ['headers'];
|
|
52
52
|
var attachments = exoptions.attachments || [];
|
|
53
|
-
if (typeof data === 'string' && attachments.length === 0) {
|
|
53
|
+
if (typeof data === 'string' && attachments.length === 0 && !exoptions.forceMTOM) {
|
|
54
54
|
headers['Content-Length'] = Buffer.byteLength(data, 'utf8');
|
|
55
55
|
headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
56
56
|
}
|
|
@@ -64,10 +64,22 @@ var HttpClient = /** @class */ (function () {
|
|
|
64
64
|
headers: headers,
|
|
65
65
|
followAllRedirects: true
|
|
66
66
|
};
|
|
67
|
-
if (attachments.length > 0) {
|
|
67
|
+
if (exoptions.forceMTOM || attachments.length > 0) {
|
|
68
68
|
var start = uuid();
|
|
69
|
+
var action = null;
|
|
70
|
+
if (headers['Content-Type'].indexOf('action') > -1) {
|
|
71
|
+
for (var _i = 0, _a = headers['Content-Type'].split('; '); _i < _a.length; _i++) {
|
|
72
|
+
var ct = _a[_i];
|
|
73
|
+
if (ct.indexOf('action') > -1) {
|
|
74
|
+
action = ct;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
69
78
|
headers['Content-Type'] =
|
|
70
79
|
'multipart/related; type="application/xop+xml"; start="<' + start + '>"; start-info="text/xml"; boundary=' + uuid();
|
|
80
|
+
if (action) {
|
|
81
|
+
headers['Content-Type'] = headers['Content-Type'] + '; ' + action;
|
|
82
|
+
}
|
|
71
83
|
var multipart_1 = [{
|
|
72
84
|
'Content-Type': 'application/xop+xml; charset=UTF-8; type="text/xml"',
|
|
73
85
|
'Content-ID': '<' + start + '>',
|
package/lib/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,oCAAsC;AACtC,mCAAqC;AACrC,0BAA4B;AAC5B,6BAA+B;AAC/B,yBAA2B;AAC3B,8BAAgC;AAGhC,IAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AACxC,IAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AAenD;;;;;;GAMG;AACH;IAGE,oBAAY,OAAkB;QAC5B,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACI,iCAAY,GAAnB,UAAoB,IAAY,EAAE,IAAS,EAAE,SAAoB,EAAE,SAA0B;QAA1B,0BAAA,EAAA,cAA0B;QAC3F,IAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC1C,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrC,IAAM,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,IAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACrC,IAAM,OAAO,GAAa;YACxB,YAAY,EAAE,YAAY,GAAG,OAAO;YACpC,QAAQ,EAAE,0EAA0E;YACpF,iBAAiB,EAAE,MAAM;YACzB,gBAAgB,EAAE,OAAO;YACzB,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO;YACxD,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;SAC/C,CAAC;QACF,IAAM,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,IAAM,WAAW,GAAkB,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;QAE/D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,15 +3,28 @@ export interface IWSSecurityCertOptions {
|
|
|
3
3
|
hasTimeStamp?: boolean;
|
|
4
4
|
signatureTransformations?: string[];
|
|
5
5
|
signatureAlgorithm?: string;
|
|
6
|
+
additionalReferences?: string[];
|
|
7
|
+
signerOptions?: IXmlSignerOptions;
|
|
8
|
+
}
|
|
9
|
+
export interface IXmlSignerOptions {
|
|
10
|
+
prefix?: string;
|
|
11
|
+
attrs?: {
|
|
12
|
+
[key: string]: string;
|
|
13
|
+
};
|
|
14
|
+
existingPrefixes?: {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
};
|
|
6
17
|
}
|
|
7
18
|
export declare class WSSecurityCert implements ISecurity {
|
|
8
19
|
private publicP12PEM;
|
|
9
20
|
private signer;
|
|
21
|
+
private signerOptions;
|
|
10
22
|
private x509Id;
|
|
11
23
|
private hasTimeStamp;
|
|
12
24
|
private signatureTransformations;
|
|
13
25
|
private created;
|
|
14
26
|
private expires;
|
|
27
|
+
private additionalReferences;
|
|
15
28
|
constructor(privatePEM: any, publicP12PEM: any, password: any, options?: IWSSecurityCertOptions);
|
|
16
29
|
postProcess(xml: any, envelopeKey: any): string;
|
|
17
30
|
}
|
|
@@ -25,8 +25,10 @@ function generateId() {
|
|
|
25
25
|
var oasisBaseUri = 'http://docs.oasis-open.org/wss/2004/01';
|
|
26
26
|
var WSSecurityCert = /** @class */ (function () {
|
|
27
27
|
function WSSecurityCert(privatePEM, publicP12PEM, password, options) {
|
|
28
|
+
if (options === void 0) { options = {}; }
|
|
28
29
|
var _this = this;
|
|
29
|
-
|
|
30
|
+
this.signerOptions = {};
|
|
31
|
+
this.additionalReferences = [];
|
|
30
32
|
this.publicP12PEM = publicP12PEM.toString()
|
|
31
33
|
.replace('-----BEGIN CERTIFICATE-----', '')
|
|
32
34
|
.replace('-----END CERTIFICATE-----', '')
|
|
@@ -36,6 +38,22 @@ var WSSecurityCert = /** @class */ (function () {
|
|
|
36
38
|
this.signer.signatureAlgorithm = options.signatureAlgorithm;
|
|
37
39
|
this.signer.addReference('//*[name(.)="soap:Body"]', ['http://www.w3.org/2001/10/xml-exc-c14n#'], 'http://www.w3.org/2001/04/xmlenc#sha256');
|
|
38
40
|
}
|
|
41
|
+
if (options.additionalReferences && options.additionalReferences.length > 0) {
|
|
42
|
+
this.additionalReferences = options.additionalReferences;
|
|
43
|
+
}
|
|
44
|
+
if (options.signerOptions) {
|
|
45
|
+
var signerOptions = options.signerOptions;
|
|
46
|
+
this.signerOptions = signerOptions;
|
|
47
|
+
if (!this.signerOptions.existingPrefixes) {
|
|
48
|
+
this.signerOptions.existingPrefixes = {};
|
|
49
|
+
}
|
|
50
|
+
if (this.signerOptions.existingPrefixes && !this.signerOptions.existingPrefixes.wsse) {
|
|
51
|
+
this.signerOptions.existingPrefixes.wsse = oasisBaseUri + "/oasis-200401-wss-wssecurity-secext-1.0.xsd";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.signerOptions = { existingPrefixes: { wsse: oasisBaseUri + "/oasis-200401-wss-wssecurity-secext-1.0.xsd" } };
|
|
56
|
+
}
|
|
39
57
|
this.signer.signingKey = {
|
|
40
58
|
key: privatePEM,
|
|
41
59
|
passphrase: password
|
|
@@ -71,17 +89,28 @@ var WSSecurityCert = /** @class */ (function () {
|
|
|
71
89
|
("wsu:Id=\"" + this.x509Id + "\">" + this.publicP12PEM + "</wsse:BinarySecurityToken>") +
|
|
72
90
|
timestampStr +
|
|
73
91
|
"</wsse:Security>";
|
|
74
|
-
var xmlWithSec = insertStr(secHeader, xml, xml.indexOf(
|
|
92
|
+
var xmlWithSec = insertStr(secHeader, xml, xml.indexOf("</" + envelopeKey + ":Header>"));
|
|
75
93
|
var references = this.signatureTransformations;
|
|
76
94
|
var bodyXpath = "//*[name(.)='" + envelopeKey + ":Body']";
|
|
77
95
|
if (!(this.signer.references.filter(function (ref) { return (ref.xpath === bodyXpath); }).length > 0)) {
|
|
78
96
|
this.signer.addReference(bodyXpath, references);
|
|
79
97
|
}
|
|
98
|
+
var _loop_1 = function (name_1) {
|
|
99
|
+
var xpath = "//*[name(.)='" + name_1 + "']";
|
|
100
|
+
if (!(this_1.signer.references.filter(function (ref) { return (ref.xpath === xpath); }).length > 0)) {
|
|
101
|
+
this_1.signer.addReference(xpath, references);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
var this_1 = this;
|
|
105
|
+
for (var _i = 0, _a = this.additionalReferences; _i < _a.length; _i++) {
|
|
106
|
+
var name_1 = _a[_i];
|
|
107
|
+
_loop_1(name_1);
|
|
108
|
+
}
|
|
80
109
|
var timestampXpath = "//*[name(.)='wsse:Security']/*[local-name(.)='Timestamp']";
|
|
81
110
|
if (this.hasTimeStamp && !(this.signer.references.filter(function (ref) { return (ref.xpath === timestampXpath); }).length > 0)) {
|
|
82
111
|
this.signer.addReference(timestampXpath, references);
|
|
83
112
|
}
|
|
84
|
-
this.signer.computeSignature(xmlWithSec);
|
|
113
|
+
this.signer.computeSignature(xmlWithSec, this.signerOptions);
|
|
85
114
|
return insertStr(this.signer.getSignatureXml(), xmlWithSec, xmlWithSec.indexOf('</wsse:Security>'));
|
|
86
115
|
};
|
|
87
116
|
return WSSecurityCert;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WSSecurityCert.js","sourceRoot":"","sources":["../../src/security/WSSecurityCert.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"WSSecurityCert.js","sourceRoot":"","sources":["../../src/security/WSSecurityCert.ts"],"names":[],"mappings":"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"}
|
package/lib/server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import * as http from 'http';
|
|
4
|
-
import {
|
|
4
|
+
import { IServerOptions, IServices } from './types';
|
|
5
5
|
import { WSDL } from './wsdl';
|
|
6
6
|
interface IExpressApp {
|
|
7
7
|
route: any;
|
|
@@ -15,17 +15,20 @@ declare type Response = http.ServerResponse;
|
|
|
15
15
|
export interface Server {
|
|
16
16
|
emit(event: 'request', request: any, methodName: string): boolean;
|
|
17
17
|
emit(event: 'headers', headers: any, methodName: string): boolean;
|
|
18
|
+
emit(event: 'response', headers: any, methodName: string): boolean;
|
|
18
19
|
/** Emitted for every received messages. */
|
|
19
20
|
on(event: 'request', listener: (request: any, methodName: string) => void): this;
|
|
20
21
|
/** Emitted when the SOAP Headers are not empty. */
|
|
21
22
|
on(event: 'headers', listener: (headers: any, methodName: string) => void): this;
|
|
23
|
+
/** Emitted before sending SOAP response. */
|
|
24
|
+
on(event: 'response', listener: (response: any, methodName: string) => void): this;
|
|
22
25
|
}
|
|
23
26
|
export declare class Server extends EventEmitter {
|
|
24
27
|
path: string;
|
|
25
28
|
services: IServices;
|
|
26
29
|
log: (type: string, data: any) => any;
|
|
27
30
|
authorizeConnection: (req: Request, res?: Response) => boolean;
|
|
28
|
-
authenticate: (security:
|
|
31
|
+
authenticate: (security: any, processAuthResult?: (result: boolean) => void, req?: Request, obj?: any) => boolean | void | Promise<boolean>;
|
|
29
32
|
private wsdl;
|
|
30
33
|
private suppressStack;
|
|
31
34
|
private returnFault;
|
package/lib/server.js
CHANGED
|
@@ -234,7 +234,7 @@ var Server = /** @class */ (function (_super) {
|
|
|
234
234
|
res.end();
|
|
235
235
|
}
|
|
236
236
|
};
|
|
237
|
-
Server.prototype._process = function (input, req,
|
|
237
|
+
Server.prototype._process = function (input, req, cb) {
|
|
238
238
|
var _this_1 = this;
|
|
239
239
|
var pathname = url.parse(req.url).pathname.replace(/\/$/, '');
|
|
240
240
|
var obj = this.wsdl.xmlToObject(input);
|
|
@@ -246,6 +246,11 @@ var Server = /** @class */ (function (_super) {
|
|
|
246
246
|
var portName;
|
|
247
247
|
var includeTimestamp = obj.Header && obj.Header.Security && obj.Header.Security.Timestamp;
|
|
248
248
|
var authenticate = this.authenticate || function defaultAuthenticate() { return true; };
|
|
249
|
+
var callback = function (result, statusCode) {
|
|
250
|
+
var response = { result: result };
|
|
251
|
+
_this_1.emit('response', response, methodName);
|
|
252
|
+
cb(response.result, statusCode);
|
|
253
|
+
};
|
|
249
254
|
var process = function () {
|
|
250
255
|
if (typeof _this_1.log === 'function') {
|
|
251
256
|
_this_1.log('info', 'Attempting to bind to ' + pathname);
|
|
@@ -287,7 +292,7 @@ var Server = /** @class */ (function (_super) {
|
|
|
287
292
|
}
|
|
288
293
|
try {
|
|
289
294
|
if (binding.style === 'rpc') {
|
|
290
|
-
methodName = Object.keys(body)[0];
|
|
295
|
+
methodName = (Object.keys(body)[0] === 'attributes' ? Object.keys(body)[1] : Object.keys(body)[0]);
|
|
291
296
|
_this_1.emit('request', obj, methodName);
|
|
292
297
|
if (headers) {
|
|
293
298
|
_this_1.emit('headers', headers, methodName);
|
|
@@ -309,6 +314,7 @@ var Server = /** @class */ (function (_super) {
|
|
|
309
314
|
if (headers) {
|
|
310
315
|
_this_1.emit('headers', headers, pair.methodName);
|
|
311
316
|
}
|
|
317
|
+
methodName = pair.methodName;
|
|
312
318
|
_this_1._executeMethod({
|
|
313
319
|
serviceName: serviceName,
|
|
314
320
|
portName: portName,
|
|
@@ -330,10 +336,25 @@ var Server = /** @class */ (function (_super) {
|
|
|
330
336
|
// Authentication
|
|
331
337
|
if (typeof authenticate === 'function') {
|
|
332
338
|
var authResultProcessed_1 = false;
|
|
333
|
-
var
|
|
334
|
-
if (
|
|
335
|
-
|
|
336
|
-
|
|
339
|
+
var processAuthResult_1 = function (authResult) {
|
|
340
|
+
if (authResultProcessed_1) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
authResultProcessed_1 = true;
|
|
344
|
+
// Handle errors
|
|
345
|
+
if (authResult instanceof Error) {
|
|
346
|
+
return _this_1._sendError({
|
|
347
|
+
Code: {
|
|
348
|
+
Value: 'SOAP-ENV:Server',
|
|
349
|
+
Subcode: { value: 'InternalServerError' }
|
|
350
|
+
},
|
|
351
|
+
Reason: { Text: authResult.toString() },
|
|
352
|
+
statusCode: 500
|
|
353
|
+
}, callback, includeTimestamp);
|
|
354
|
+
}
|
|
355
|
+
// Handle actual results
|
|
356
|
+
if (typeof authResult === 'boolean') {
|
|
357
|
+
if (authResult === true) {
|
|
337
358
|
try {
|
|
338
359
|
process();
|
|
339
360
|
}
|
|
@@ -363,7 +384,17 @@ var Server = /** @class */ (function (_super) {
|
|
|
363
384
|
}
|
|
364
385
|
}
|
|
365
386
|
};
|
|
366
|
-
|
|
387
|
+
var functionResult = authenticate(obj.Header && obj.Header.Security, processAuthResult_1, req, obj);
|
|
388
|
+
if (isPromiseLike(functionResult)) {
|
|
389
|
+
functionResult.then(function (result) {
|
|
390
|
+
processAuthResult_1(result);
|
|
391
|
+
}, function (err) {
|
|
392
|
+
processAuthResult_1(err);
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
if (typeof functionResult === 'boolean') {
|
|
396
|
+
processAuthResult_1(functionResult);
|
|
397
|
+
}
|
|
367
398
|
}
|
|
368
399
|
else {
|
|
369
400
|
throw new Error('Invalid authenticate function (not a function)');
|