diff --git a/lib/saml2.coffee b/lib/saml2.coffee index 89dd263..6ac3993 100644 --- a/lib/saml2.coffee +++ b/lib/saml2.coffee @@ -5,7 +5,7 @@ debug = require('debug') 'saml2' {parseString} = require 'xml2js' url = require 'url' util = require 'util' -xmlbuilder = require 'xmlbuilder' +xmlbuilder = require 'xmlbuilder2' xmlcrypto = require 'xml-crypto' xmldom = require 'xmldom' xmlenc = require 'xml-encryption' @@ -28,8 +28,7 @@ class SAMLError extends Error # request. create_authn_request = (issuer, assert_endpoint, destination, force_authn, context, nameid_format) -> if context? - context_element = _(context.class_refs).map (class_ref) -> 'saml:AuthnContextClassRef': class_ref - context_element.push '@Comparison': context.comparison + context_element = { 'saml:AuthnContextClassRef': context.class_refs, '@Comparison': context.comparison } id = '_' + crypto.randomBytes(21).toString('hex') xml = xmlbuilder.create diff --git a/package.json b/package.json index 8eb3199..98ace8d 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "Apache-2.0", "main": "index.js", "engines": { - "node": ">=0.10.x" + "node": ">=10.x" }, "scripts": { "build": "coffee --bare -c -o lib-js lib", @@ -31,13 +31,13 @@ "nyc": "^15.0.0" }, "dependencies": { - "async": "^2.5.0", - "debug": "^2.6.0", + "async": "^3.2.0", + "debug": "^4.3.0", "underscore": "^1.8.0", "xml-crypto": "^0.10.0", "xml-encryption": "^1.2.1", "xml2js": "^0.4.0", - "xmlbuilder": "~2.2.0", - "xmldom": "^0.1.0" + "xmlbuilder2": "^2.4.0", + "xmldom": "^0.4.0" } } diff --git a/test/saml2.coffee b/test/saml2.coffee index fef1bc4..b595339 100644 --- a/test/saml2.coffee +++ b/test/saml2.coffee @@ -51,7 +51,7 @@ describe 'saml2', -> authn_request = dom.getElementsByTagName('AuthnRequest')[0] requested_authn_context = authn_request.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'RequestedAuthnContext')[0] - assert _(requested_authn_context.attributes).some (attr) -> attr.name is 'Comparison' and attr.value is 'exact' + assert _(requested_authn_context.attributes).some((attr) -> attr.name is 'Comparison' and attr.value is 'exact'), "Could not determine if specified attribute had proper value (Comparison=exact)" assert.equal requested_authn_context.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:assertion', 'AuthnContextClassRef')[0].firstChild.data, 'context:class'