mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 17:19:37 +02:00
24 lines
1.3 KiB
Diff
24 lines
1.3 KiB
Diff
diff --git a/lib/saml.js b/lib/saml.js
|
|
index 64180fdd7fe6302bf8da7d1ca65c01bb1ea5e2c1..7015c3b73603f624c15195a0a38c2fbf750a4c60 100644
|
|
--- a/lib/saml.js
|
|
+++ b/lib/saml.js
|
|
@@ -327,7 +327,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 {
|
|
@@ -510,7 +511,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);
|