diff --git a/lib/security/WSSecurityCert.js b/lib/security/WSSecurityCert.js index a7eea1bd4..6cfc094c6 100644 --- a/lib/security/WSSecurityCert.js +++ b/lib/security/WSSecurityCert.js @@ -6,7 +6,9 @@ var ejs = require('ejs'); var SignedXml = require('xml-crypto').SignedXml; var uuid4 = require('uuid/v4'); var wsseSecurityHeaderTemplate; +var wsseSecurityHeaderTemplateXml = require('./templates/wsse-security-header'); var wsseSecurityTokenTemplate; +var wsseSecurityTokenTemplateXml = require('./templates/wsse-security-token'); function addMinutes(date, minutes) { return new Date(date.getTime() + minutes * 60000); @@ -52,7 +54,7 @@ function WSSecurityCert(privatePEM, publicP12PEM, password, options) { this.signer.keyInfoProvider = {}; this.signer.keyInfoProvider.getKeyInfo = function (key) { if (!wsseSecurityTokenTemplate) { - wsseSecurityTokenTemplate = ejs.compile(fs.readFileSync(path.join(__dirname, 'templates', 'wsse-security-token.ejs')).toString()); + wsseSecurityTokenTemplate = ejs.compile(wsseSecurityTokenTemplateXml); } return wsseSecurityTokenTemplate({ x509Id: _this.x509Id }); @@ -62,9 +64,9 @@ function WSSecurityCert(privatePEM, publicP12PEM, password, options) { WSSecurityCert.prototype.postProcess = function (xml, envelopeKey) { this.created = generateCreated(); this.expires = generateExpires(); - + if (!wsseSecurityHeaderTemplate) { - wsseSecurityHeaderTemplate = ejs.compile(fs.readFileSync(path.join(__dirname, 'templates', 'wsse-security-header.ejs')).toString()); + wsseSecurityHeaderTemplate = ejs.compile(wsseSecurityHeaderTemplateXml); } var secHeader = wsseSecurityHeaderTemplate({ diff --git a/lib/security/templates/wsse-security-header.ejs b/lib/security/templates/wsse-security-header.ejs deleted file mode 100644 index 1fe73b45b..000000000 --- a/lib/security/templates/wsse-security-header.ejs +++ /dev/null @@ -1,12 +0,0 @@ - - <%-binaryToken%><% if (hasTimeStamp === true) { %> - - <%-created%> - <%-expires%> - <% } %> - diff --git a/lib/security/templates/wsse-security-header.js b/lib/security/templates/wsse-security-header.js new file mode 100644 index 000000000..23711b60a --- /dev/null +++ b/lib/security/templates/wsse-security-header.js @@ -0,0 +1,14 @@ +var header = ['', +'<%= binaryToken%><% if (hasTimeStamp === true) { %>', +'', +'<%= created%>', +'<%= expires%>', +' <% } %>', +''].join('\n'); + +module.exports = header; \ No newline at end of file diff --git a/lib/security/templates/wsse-security-token.ejs b/lib/security/templates/wsse-security-token.ejs deleted file mode 100644 index 3abfecc95..000000000 --- a/lib/security/templates/wsse-security-token.ejs +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/lib/security/templates/wsse-security-token.js b/lib/security/templates/wsse-security-token.js new file mode 100644 index 000000000..29aae114d --- /dev/null +++ b/lib/security/templates/wsse-security-token.js @@ -0,0 +1,5 @@ +var token = ['', +'', +''].join('\n'); + +module.exports = token; \ No newline at end of file diff --git a/lib/wsdl.js b/lib/wsdl.js index 65abe8dc4..f08d2eb35 100644 --- a/lib/wsdl.js +++ b/lib/wsdl.js @@ -65,9 +65,9 @@ function splitQName(nsName) { }; } - const [topLevelName] = nsName.split('|'); + var topLevelName = nsName.split('|')[0]; - const prefixOffset = topLevelName.indexOf(':'); + var prefixOffset = topLevelName.indexOf(':'); return { prefix: topLevelName.substring(0, prefixOffset) || TNS_PREFIX, @@ -1746,10 +1746,11 @@ WSDL.prototype.objectToXML = function(obj, name, nsPrefix, nsURI, isFirst, xmlns } var i, n; + var nonSubNameSpace, nameWithNsRegex; // start building out XML string. if (Array.isArray(obj)) { - var nonSubNameSpace = ''; - var nameWithNsRegex = /^([^:]+):([^:]+)$/.exec(name); + nonSubNameSpace = ''; + nameWithNsRegex = /^([^:]+):([^:]+)$/.exec(name); if (nameWithNsRegex) { nonSubNameSpace = nameWithNsRegex[1]; name = nameWithNsRegex[2]; @@ -1805,10 +1806,10 @@ WSDL.prototype.objectToXML = function(obj, name, nsPrefix, nsURI, isFirst, xmlns var attr = self.processAttributes(child, nsContext); var value = ''; - var nonSubNameSpace = ''; + nonSubNameSpace = ''; var emptyNonSubNameSpace = false; - var nameWithNsRegex = /^([^:]+):([^:]+)$/.exec(name); + nameWithNsRegex = /^([^:]+):([^:]+)$/.exec(name); if (nameWithNsRegex) { nonSubNameSpace = nameWithNsRegex[1] + ':'; name = nameWithNsRegex[2]; diff --git a/package.json b/package.json index 57b3b2348..5647b11db 100644 --- a/package.json +++ b/package.json @@ -60,4 +60,4 @@ "sinon": "^1.17.5", "timekeeper": "~0.0.4" } -} \ No newline at end of file +} diff --git a/test/request-response-samples/Dummy__should_handle_inline_types/wsdl_options.js b/test/request-response-samples/Dummy__should_handle_inline_types/wsdl_options.js index 74a8dd050..76d19ab75 100644 --- a/test/request-response-samples/Dummy__should_handle_inline_types/wsdl_options.js +++ b/test/request-response-samples/Dummy__should_handle_inline_types/wsdl_options.js @@ -1,13 +1,16 @@ -exports.customDeserializer = { - DateTime: (text) => new Date(text), - TimeHourMinute: (text) => { +"use strict"; +var customDeserializer = { + DateTime: function (text) { return new Date(text); }, + TimeHourMinute: function (text) { // Return number of minutes since midnight - const results = text.split(':').map(t => parseInt(t, 10)); + var results = text.split(':').map(function (t) { return parseInt(t, 10); }); return results[0] * 60 + results[1]; }, - NestedSimpleType: (text) => { + NestedSimpleType: function (text) { // Return number of minutes since midnight - const results = text.split(':').map(t => parseInt(t, 10)); + var results = text.split(':').map(function (t) { return parseInt(t, 10); }); return results[0] * 60 + results[1]; } }; + +module.exports = customDeserializer;