diff --git a/node_modules/@node-saml/node-saml/lib/saml.js b/node_modules/@node-saml/node-saml/lib/saml.js index fba15b9..a5778cb 100644 --- a/node_modules/@node-saml/node-saml/lib/saml.js +++ b/node_modules/@node-saml/node-saml/lib/saml.js @@ -336,7 +336,8 @@ class SAML { const requestOrResponse = request || response; (0, utility_1.assertRequired)(requestOrResponse, "either request or response is required"); let buffer; - if (this.options.skipRequestCompression) { + // logout requestOrResponse must be compressed anyway + if (this.options.skipRequestCompression && operation !== "logout") { buffer = Buffer.from(requestOrResponse, "utf8"); } else { @@ -495,7 +496,7 @@ class SAML { try { xml = Buffer.from(container.SAMLResponse, "base64").toString("utf8"); doc = await (0, xml_1.parseDomFromString)(xml); - const inResponseToNodes = xml_1.xpath.selectAttributes(doc, "/*[local-name()='Response']/@InResponseTo"); + const inResponseToNodes = xml_1.xpath.selectAttributes(doc, "/*[local-name()='Response' or local-name()='LogoutResponse']/@InResponseTo"); if (inResponseToNodes) { inResponseTo = inResponseToNodes.length ? inResponseToNodes[0].nodeValue : null; await this.validateInResponseTo(inResponseTo);