samlesa 4.7.5 → 4.8.0

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,
@@ -97,30 +97,47 @@ function resolvePublicCertificates(signatureNode, opts) {
97
97
  }
98
98
  return metadataCerts.map((cert) => libsaml.getKeyInfo(cert).getKey());
99
99
  }
100
- 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) {
101
106
  const resolvedNodes = toNodeArray(select("./*[local-name()='Response' or local-name()='AuthnRequest' or local-name()='LogoutRequest' or local-name()='LogoutResponse']", rootNode));
102
107
  if (resolvedNodes.length === 0) {
103
- return null;
108
+ return [];
104
109
  }
105
- return serializeWithInheritedNamespaces(resolvedNodes[0]);
110
+ const resolvedNode = resolvedNodes[0];
111
+ return uniqueXmlCandidates([
112
+ serializeWithInheritedNamespaces(resolvedNode),
113
+ resolvedNode.toString(),
114
+ ]);
106
115
  }
107
116
  function verifySignature(xml, signatureNodes, opts) {
108
117
  for (const signatureNode of signatureNodes) {
109
118
  const publicKeys = resolvePublicCertificates(signatureNode, opts);
110
119
  let verifiedSig = null;
111
120
  let lastError = null;
121
+ const parentXml = signatureNode?.parentNode ? serializeWithInheritedNamespaces(signatureNode.parentNode) : '';
122
+ const rawParentXml = signatureNode?.parentNode?.toString?.() || '';
123
+ const xmlCandidates = uniqueXmlCandidates([xml, parentXml, rawParentXml]);
112
124
  for (const publicKey of publicKeys) {
113
- try {
114
- const sig = new SignedXml();
115
- sig.publicCert = publicKey;
116
- sig.loadSignature(signatureNode);
117
- if (sig.checkSignature(xml)) {
118
- verifiedSig = sig;
119
- break;
125
+ for (const xmlCandidate of xmlCandidates) {
126
+ try {
127
+ const sig = new SignedXml();
128
+ sig.publicCert = publicKey;
129
+ sig.loadSignature(signatureNode);
130
+ if (sig.checkSignature(xmlCandidate)) {
131
+ verifiedSig = sig;
132
+ break;
133
+ }
134
+ }
135
+ catch (error) {
136
+ lastError = error;
120
137
  }
121
138
  }
122
- catch (error) {
123
- lastError = error;
139
+ if (verifiedSig) {
140
+ break;
124
141
  }
125
142
  }
126
143
  if (!verifiedSig) {
@@ -148,12 +165,14 @@ function verifySignature(xml, signatureNodes, opts) {
148
165
  };
149
166
  }
150
167
  if (rootNode.localName === 'ArtifactResponse') {
168
+ const resolvedMessageCandidates = extractResolvedMessages(rootNode);
151
169
  return {
152
170
  verified: true,
153
171
  soapContent: xml,
154
172
  message: rootNode.toString(),
155
173
  type: 'ArtifactResponse',
156
- resolvedMessage: extractResolvedMessage(rootNode),
174
+ resolvedMessage: resolvedMessageCandidates[0] ?? null,
175
+ resolvedMessageCandidates,
157
176
  hasWrapperSignature: true,
158
177
  };
159
178
  }
@@ -161,12 +180,14 @@ function verifySignature(xml, signatureNodes, opts) {
161
180
  throw new Error('ERR_UNSUPPORTED_SOAP_MESSAGE_TYPE');
162
181
  }
163
182
  function parseUnsignedArtifactResponse(xml, artifactResponseNode) {
183
+ const resolvedMessageCandidates = extractResolvedMessages(artifactResponseNode);
164
184
  return {
165
185
  verified: true,
166
186
  soapContent: xml,
167
187
  message: artifactResponseNode.toString(),
168
188
  type: 'ArtifactResponse',
169
- resolvedMessage: extractResolvedMessage(artifactResponseNode),
189
+ resolvedMessage: resolvedMessageCandidates[0] ?? null,
190
+ resolvedMessageCandidates,
170
191
  hasWrapperSignature: false,
171
192
  };
172
193
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "samlesa",
3
- "version": "4.7.5",
3
+ "version": "4.8.0",
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;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,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;AAqJD,iBAAe,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoCpH;;;;AAED,wBAEE"}