samlesa 4.7.4 → 4.7.6

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.
@@ -391,6 +391,11 @@ function createArtifactResolveResponse(params) {
391
391
  : soapResponse,
392
392
  };
393
393
  }
394
+ function uniqueSamlContentCandidates(primary, candidates) {
395
+ return [primary, ...(candidates || [])].filter((candidate, index, list) => typeof candidate === 'string' &&
396
+ candidate.length > 0 &&
397
+ list.indexOf(candidate) === index);
398
+ }
394
399
  async function parseArtifactResolveResponse(params) {
395
400
  const validXml = await libsaml.isValidXml(params.xml, true).catch(() => false);
396
401
  if (validXml !== true) {
@@ -422,6 +427,7 @@ async function parseArtifactResolveResponse(params) {
422
427
  return {
423
428
  soapContent: params.xml,
424
429
  samlContent: verifiedSoap.resolvedMessage,
430
+ samlContentCandidates: uniqueSamlContentCandidates(verifiedSoap.resolvedMessage, verifiedSoap.resolvedMessageCandidates),
425
431
  extract: extracted,
426
432
  };
427
433
  }
@@ -459,7 +465,7 @@ async function resolveArtifact(params) {
459
465
  resolved,
460
466
  };
461
467
  }
462
- async function parseResolvedLoginRequestXml(params) {
468
+ async function parseResolvedLoginRequestXmlCandidate(params) {
463
469
  let samlContent = params.samlContent;
464
470
  const verificationOptions = {
465
471
  metadata: params.sp.entityMeta,
@@ -488,6 +494,23 @@ async function parseResolvedLoginRequestXml(params) {
488
494
  }
489
495
  return parseResult;
490
496
  }
497
+ async function parseResolvedLoginRequestXml(params) {
498
+ const samlContentCandidates = uniqueSamlContentCandidates(params.samlContent, params.samlContentCandidates);
499
+ let lastError = null;
500
+ for (const samlContent of samlContentCandidates) {
501
+ try {
502
+ return await parseResolvedLoginRequestXmlCandidate({
503
+ idp: params.idp,
504
+ sp: params.sp,
505
+ samlContent,
506
+ });
507
+ }
508
+ catch (error) {
509
+ lastError = error;
510
+ }
511
+ }
512
+ throw lastError;
513
+ }
491
514
  async function parseLoginRequest(params) {
492
515
  const { artifact, relayState } = getArtifactFromRequest(params.request);
493
516
  validateArtifact(artifact, params.sp.entityMeta.getEntityID());
@@ -500,6 +523,7 @@ async function parseLoginRequest(params) {
500
523
  idp: params.idp,
501
524
  sp: params.sp,
502
525
  samlContent: resolved.samlContent,
526
+ samlContentCandidates: resolved.samlContentCandidates,
503
527
  });
504
528
  ensureValidDestination(params.idp.entityMeta, 'singleSignOnService', parseResult?.extract?.request?.destination, binding.artifact, 'ERR_INVALID_DESTINATION');
505
529
  ensureValidDestination(params.sp.entityMeta, 'assertionConsumerService', parseResult?.extract?.request?.assertionConsumerServiceUrl || parseResult?.extract?.request?.assertionConsumerServiceURL, undefined, 'ERR_INVALID_ASSERTION_CONSUMER_SERVICE');
@@ -513,6 +537,31 @@ async function parseLoginRequest(params) {
513
537
  },
514
538
  };
515
539
  }
540
+ async function parseResolvedLoginResponseXml(params) {
541
+ const samlContentCandidates = uniqueSamlContentCandidates(params.samlContent, params.samlContentCandidates);
542
+ let lastError = null;
543
+ for (const samlContent of samlContentCandidates) {
544
+ try {
545
+ return await flow({
546
+ from: params.idp,
547
+ self: params.sp,
548
+ checkSignature: true,
549
+ parserType: ParserType.SAMLResponse,
550
+ type: 'login',
551
+ binding: binding.post,
552
+ request: {
553
+ body: {
554
+ SAMLResponse: utility.base64Encode(samlContent),
555
+ },
556
+ },
557
+ });
558
+ }
559
+ catch (error) {
560
+ lastError = error;
561
+ }
562
+ }
563
+ throw lastError;
564
+ }
516
565
  async function parseLoginResponse(params) {
517
566
  const { artifact, relayState } = getArtifactFromRequest(params.request);
518
567
  validateArtifact(artifact, params.idp.entityMeta.getEntityID());
@@ -521,18 +570,11 @@ async function parseLoginResponse(params) {
521
570
  responder: params.idp,
522
571
  artifact,
523
572
  });
524
- const parseResult = await flow({
525
- from: params.idp,
526
- self: params.sp,
527
- checkSignature: true,
528
- parserType: ParserType.SAMLResponse,
529
- type: 'login',
530
- binding: binding.post,
531
- request: {
532
- body: {
533
- SAMLResponse: utility.base64Encode(resolved.samlContent),
534
- },
535
- },
573
+ const parseResult = await parseResolvedLoginResponseXml({
574
+ idp: params.idp,
575
+ sp: params.sp,
576
+ samlContent: resolved.samlContent,
577
+ samlContentCandidates: resolved.samlContentCandidates,
536
578
  });
537
579
  return {
538
580
  ...parseResult,
@@ -15,6 +15,64 @@ function toNodeArray(result) {
15
15
  }
16
16
  return [];
17
17
  }
18
+ function isElementNode(node) {
19
+ return !!node && node.nodeType === 1;
20
+ }
21
+ function isNamespaceDeclaration(attributeName) {
22
+ return attributeName === 'xmlns' || attributeName.startsWith('xmlns:');
23
+ }
24
+ function getNamespaceDeclarationMap(node) {
25
+ const declarations = new Map();
26
+ const attributes = node.attributes;
27
+ for (let index = 0; index < attributes.length; index += 1) {
28
+ const attribute = attributes.item(index);
29
+ if (attribute && isNamespaceDeclaration(attribute.name)) {
30
+ declarations.set(attribute.name, attribute.value);
31
+ }
32
+ }
33
+ return declarations;
34
+ }
35
+ function collectInheritedNamespaceDeclarations(node) {
36
+ const inheritedDeclarations = new Map();
37
+ let current = node.parentNode;
38
+ while (isElementNode(current)) {
39
+ for (const [name, value] of getNamespaceDeclarationMap(current)) {
40
+ if (!inheritedDeclarations.has(name)) {
41
+ inheritedDeclarations.set(name, value);
42
+ }
43
+ }
44
+ current = current.parentNode;
45
+ }
46
+ return inheritedDeclarations;
47
+ }
48
+ function escapeAttributeValue(value) {
49
+ return value
50
+ .replace(/&/g, '&amp;')
51
+ .replace(/"/g, '&quot;')
52
+ .replace(/</g, '&lt;')
53
+ .replace(/>/g, '&gt;');
54
+ }
55
+ function rootHasNamespaceDeclaration(serializedXml, name) {
56
+ const rootStartTag = serializedXml.match(/^<[^>]+>/)?.[0] || '';
57
+ return new RegExp(`(?:^|\\s)${name.replace(':', '\\:')}\\s*=`).test(rootStartTag);
58
+ }
59
+ function serializeWithInheritedNamespaces(node) {
60
+ if (!isElementNode(node)) {
61
+ return node.toString();
62
+ }
63
+ let serializedXml = node.toString();
64
+ const declarationsToAdd = [];
65
+ for (const [name, value] of collectInheritedNamespaceDeclarations(node)) {
66
+ if (!rootHasNamespaceDeclaration(serializedXml, name)) {
67
+ declarationsToAdd.push(`${name}="${escapeAttributeValue(value)}"`);
68
+ }
69
+ }
70
+ if (declarationsToAdd.length === 0) {
71
+ return serializedXml;
72
+ }
73
+ serializedXml = serializedXml.replace(/^<([^\s/>]+)([^>]*)>/, (_match, tagName, attributes) => `<${tagName} ${declarationsToAdd.join(' ')}${attributes}>`);
74
+ return serializedXml;
75
+ }
18
76
  const certUse = wording.certUse;
19
77
  const docParser = new DOMParser();
20
78
  function resolvePublicCertificates(signatureNode, opts) {
@@ -39,12 +97,21 @@ function resolvePublicCertificates(signatureNode, opts) {
39
97
  }
40
98
  return metadataCerts.map((cert) => libsaml.getKeyInfo(cert).getKey());
41
99
  }
42
- function extractResolvedMessage(rootNode) {
100
+ function uniqueXmlCandidates(candidates) {
101
+ return candidates.filter((candidate, index, list) => typeof candidate === 'string' &&
102
+ candidate.length > 0 &&
103
+ list.indexOf(candidate) === index);
104
+ }
105
+ function extractResolvedMessages(rootNode) {
43
106
  const resolvedNodes = toNodeArray(select("./*[local-name()='Response' or local-name()='AuthnRequest' or local-name()='LogoutRequest' or local-name()='LogoutResponse']", rootNode));
44
107
  if (resolvedNodes.length === 0) {
45
- return null;
108
+ return [];
46
109
  }
47
- return resolvedNodes[0].toString();
110
+ const resolvedNode = resolvedNodes[0];
111
+ return uniqueXmlCandidates([
112
+ serializeWithInheritedNamespaces(resolvedNode),
113
+ resolvedNode.toString(),
114
+ ]);
48
115
  }
49
116
  function verifySignature(xml, signatureNodes, opts) {
50
117
  for (const signatureNode of signatureNodes) {
@@ -90,12 +157,14 @@ function verifySignature(xml, signatureNodes, opts) {
90
157
  };
91
158
  }
92
159
  if (rootNode.localName === 'ArtifactResponse') {
160
+ const resolvedMessageCandidates = extractResolvedMessages(rootNode);
93
161
  return {
94
162
  verified: true,
95
163
  soapContent: xml,
96
164
  message: rootNode.toString(),
97
165
  type: 'ArtifactResponse',
98
- resolvedMessage: extractResolvedMessage(rootNode),
166
+ resolvedMessage: resolvedMessageCandidates[0] ?? null,
167
+ resolvedMessageCandidates,
99
168
  hasWrapperSignature: true,
100
169
  };
101
170
  }
@@ -103,12 +172,14 @@ function verifySignature(xml, signatureNodes, opts) {
103
172
  throw new Error('ERR_UNSUPPORTED_SOAP_MESSAGE_TYPE');
104
173
  }
105
174
  function parseUnsignedArtifactResponse(xml, artifactResponseNode) {
175
+ const resolvedMessageCandidates = extractResolvedMessages(artifactResponseNode);
106
176
  return {
107
177
  verified: true,
108
178
  soapContent: xml,
109
179
  message: artifactResponseNode.toString(),
110
180
  type: 'ArtifactResponse',
111
- resolvedMessage: extractResolvedMessage(artifactResponseNode),
181
+ resolvedMessage: resolvedMessageCandidates[0] ?? null,
182
+ resolvedMessageCandidates,
112
183
  hasWrapperSignature: false,
113
184
  };
114
185
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "samlesa",
3
- "version": "4.7.4",
3
+ "version": "4.7.6",
4
4
  "description": "High-level API for Single Sign On (SAML 2.0) baseed on samlify ",
5
5
  "main": "build/index.js",
6
6
  "keywords": [
@@ -53,6 +53,7 @@ declare function parseArtifactResolveResponse(params: {
53
53
  }): Promise<{
54
54
  soapContent: string;
55
55
  samlContent: string;
56
+ samlContentCandidates: string[];
56
57
  extract: any;
57
58
  }>;
58
59
  declare function createLoginRequest(referenceTagXPath: string, entity: {
@@ -1 +1 @@
1
- {"version":3,"file":"binding-artifact.d.ts","sourceRoot":"","sources":["../../src/binding-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAapE,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,IAAI,gBAAgB,EAC/C,0BAA0B,IAAI,eAAe,EAC9C,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAE7C,MAAM,eAAe,CAAC;AAOvB,KAAK,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAU9D,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AA4WD,iBAAS,4BAA4B,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CA6BzB;AAED,iBAAe,2BAA2B,CAAC,MAAM,EAAE;IACjD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;;;;;;GAyCA;AAED,iBAAS,6BAA6B,CAAC,MAAM,EAAE;IAC7C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;;;EAkCA;AAED,iBAAe,4BAA4B,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;GA2CA;AAED,iBAAS,kBAAkB,CACzB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE;IACN,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;CACrB,EACD,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC1D,sBAAsB,CAaxB;AAED,iBAAe,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAarG;AA4DD,iBAAe,iBAAiB,CAAC,MAAM,EAAE;IACvC,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;;;;;;;;;GAwCA;AAED,iBAAe,kBAAkB,CAAC,MAAM,EAAE;IACxC,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;;;;;;;;;;GAiCA;AAED,eAAO,MAAM,kBAAkB,+BAAyB,CAAC;AAEzD,QAAA,MAAM,eAAe;;;;;;;;;;CAUpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"binding-artifact.d.ts","sourceRoot":"","sources":["../../src/binding-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAapE,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,IAAI,gBAAgB,EAC/C,0BAA0B,IAAI,eAAe,EAC9C,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAE7C,MAAM,eAAe,CAAC;AAOvB,KAAK,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAU9D,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AA4WD,iBAAS,4BAA4B,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CA6BzB;AAED,iBAAe,2BAA2B,CAAC,MAAM,EAAE;IACjD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;;;;;;GAyCA;AAED,iBAAS,6BAA6B,CAAC,MAAM,EAAE;IAC7C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;;;EAkCA;AAUD,iBAAe,4BAA4B,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;;;GA+CA;AAED,iBAAS,kBAAkB,CACzB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE;IACN,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;CACrB,EACD,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC1D,sBAAsB,CAaxB;AAED,iBAAe,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAarG;AAuFD,iBAAe,iBAAiB,CAAC,MAAM,EAAE;IACvC,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;;;;;;;;;GAyCA;AAqCD,iBAAe,kBAAkB,CAAC,MAAM,EAAE;IACxC,GAAG,EAAE,gBAAgB,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;;;;;;;;;;GA0BA;AAED,eAAO,MAAM,kBAAkB,+BAAyB,CAAC;AAEzD,QAAA,MAAM,eAAe;;;;;;;;;;CAUpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -56,6 +56,7 @@ export declare class IdentityProvider extends Entity {
56
56
  parseArtifactResolveResponse(sp: ServiceProvider, xml: string, inResponseTo?: string): Promise<{
57
57
  soapContent: string;
58
58
  samlContent: string;
59
+ samlContentCandidates: string[];
59
60
  extract: any;
60
61
  }>;
61
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"entity-idp.d.ts","sourceRoot":"","sources":["../../src/entity-idp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAM,EAAE,EAAC,KAAK,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,EACH,0BAA0B,IAAI,eAAe,EAE7C,wBAAwB,EACxB,KAAK,wBAAwB,EAChC,MAAM,YAAY,CAAC;AAOpB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,wBAAwB,oBAEvD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,MAAM;IAEhC,UAAU,EAAE,wBAAwB,CAAC;gBAEjC,UAAU,EAAE,wBAAwB;IAWhD;;;OAGG;IACU,mBAAmB,CAAC,MAAM,EAAE;QACrC,EAAE,EAAE,eAAe,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,KAAK,CAAC;KACnB;IAiEM,4BAA4B,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM;IAQ5D,6BAA6B,CAAC,MAAM,EAAE;QAC/C,EAAE,EAAE,eAAe,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,kBAAkB,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB;;;;IAkCM,2BAA2B,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM;;;;;;;IAQ5D,4BAA4B,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;;;;;IAS3F;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB;;;;;;;;;;CAmBhF"}
1
+ {"version":3,"file":"entity-idp.d.ts","sourceRoot":"","sources":["../../src/entity-idp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAM,EAAE,EAAC,KAAK,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,EACH,0BAA0B,IAAI,eAAe,EAE7C,wBAAwB,EACxB,KAAK,wBAAwB,EAChC,MAAM,YAAY,CAAC;AAOpB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,wBAAwB,oBAEvD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,MAAM;IAEhC,UAAU,EAAE,wBAAwB,CAAC;gBAEjC,UAAU,EAAE,wBAAwB;IAWhD;;;OAGG;IACU,mBAAmB,CAAC,MAAM,EAAE;QACrC,EAAE,EAAE,eAAe,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,KAAK,CAAC;KACnB;IAiEM,4BAA4B,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM;IAQ5D,6BAA6B,CAAC,MAAM,EAAE;QAC/C,EAAE,EAAE,eAAe,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,kBAAkB,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB;;;;IAkCM,2BAA2B,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM;;;;;;;IAQ5D,4BAA4B,CAAC,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;;;;;;IAS3F;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB;;;;;;;;;;CAmBhF"}
@@ -48,6 +48,7 @@ export declare class ServiceProvider extends Entity {
48
48
  parseArtifactResolveResponse(idp: IdentityProvider, xml: string, inResponseTo?: string): Promise<{
49
49
  soapContent: string;
50
50
  samlContent: string;
51
+ samlContentCandidates: string[];
51
52
  extract: any;
52
53
  }>;
53
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"entity-sp.d.ts","sourceRoot":"","sources":["../../src/entity-sp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,IAAI,gBAAgB,EAC/C,uBAAuB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAUpB,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,uBAAuB,mBAEtD;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,MAAM;IACjC,UAAU,EAAE,uBAAuB,CAAC;IAE5C;;;OAGG;gBACS,SAAS,EAAE,uBAAuB;IAS9C;;;;;OAKG;IACI,kBAAkB,CACrB,GAAG,EAAE,gBAAgB,EACrB,OAAO,SAAa,EACpB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC5D,cAAc,GAAG,kBAAkB,GAAG,wBAAwB;IAwC1D,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM;IAQ9D,6BAA6B,CACtC,GAAG,EAAE,gBAAgB,EACrB,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACF,OAAO,CAAC,cAAc,CAAC;IAkB1B;;;;;OAKG;IACI,kBAAkB,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,EAAE,gBAAgB;IAoB1D,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM;;;;;;;IAQ9D,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;;;;;CAS9F"}
1
+ {"version":3,"file":"entity-sp.d.ts","sourceRoot":"","sources":["../../src/entity-sp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,IAAI,gBAAgB,EAC/C,uBAAuB,EACvB,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAUpB,MAAM,CAAC,OAAO,WAAW,KAAK,EAAE,uBAAuB,mBAEtD;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,MAAM;IACjC,UAAU,EAAE,uBAAuB,CAAC;IAE5C;;;OAGG;gBACS,SAAS,EAAE,uBAAuB;IAS9C;;;;;OAKG;IACI,kBAAkB,CACrB,GAAG,EAAE,gBAAgB,EACrB,OAAO,SAAa,EACpB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAC5D,cAAc,GAAG,kBAAkB,GAAG,wBAAwB;IAwC1D,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM;IAQ9D,6BAA6B,CACtC,GAAG,EAAE,gBAAgB,EACrB,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;QAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACF,OAAO,CAAC,cAAc,CAAC;IAkB1B;;;;;OAKG;IACI,kBAAkB,CAAC,GAAG,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,EAAE,gBAAgB;IAoB1D,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM;;;;;;;IAQ9D,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;;;;;;CAS9F"}
@@ -5,6 +5,7 @@ export interface VerifiedSoapMessage {
5
5
  message: string;
6
6
  type: 'ArtifactResolve' | 'ArtifactResponse';
7
7
  resolvedMessage: string | null;
8
+ resolvedMessageCandidates?: string[];
8
9
  hasWrapperSignature?: boolean;
9
10
  }
10
11
  declare function verifyAndDecryptSoapMessage(xml: string, opts: SignatureVerifierOptions): Promise<VerifiedSoapMessage>;
@@ -1 +1 @@
1
- {"version":3,"file":"libsamlSoap.d.ts","sourceRoot":"","sources":["../../src/libsamlSoap.ts"],"names":[],"mappings":"AAKA,OAAgB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAiBjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;IAC7C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA4HD,iBAAe,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoCpH;;;;AAED,wBAEE"}
1
+ {"version":3,"file":"libsamlSoap.d.ts","sourceRoot":"","sources":["../../src/libsamlSoap.ts"],"names":[],"mappings":"AAKA,OAAgB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AA2FjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;IAC7C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA4ID,iBAAe,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoCpH;;;;AAED,wBAEE"}