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.
- package/build/src/binding-artifact.js +55 -13
- package/build/src/libsamlSoap.js +35 -14
- package/package.json +1 -1
- package/types/src/binding-artifact.d.ts +1 -0
- package/types/src/binding-artifact.d.ts.map +1 -1
- package/types/src/entity-idp.d.ts +1 -0
- package/types/src/entity-idp.d.ts.map +1 -1
- package/types/src/entity-sp.d.ts +1 -0
- package/types/src/entity-sp.d.ts.map +1 -1
- package/types/src/libsamlSoap.d.ts +1 -0
- package/types/src/libsamlSoap.d.ts.map +1 -1
|
@@ -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
|
|
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
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
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,
|
package/build/src/libsamlSoap.js
CHANGED
|
@@ -97,30 +97,47 @@ function resolvePublicCertificates(signatureNode, opts) {
|
|
|
97
97
|
}
|
|
98
98
|
return metadataCerts.map((cert) => libsaml.getKeyInfo(cert).getKey());
|
|
99
99
|
}
|
|
100
|
-
function
|
|
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
|
|
108
|
+
return [];
|
|
104
109
|
}
|
|
105
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
-
|
|
123
|
-
|
|
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:
|
|
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:
|
|
189
|
+
resolvedMessage: resolvedMessageCandidates[0] ?? null,
|
|
190
|
+
resolvedMessageCandidates,
|
|
170
191
|
hasWrapperSignature: false,
|
|
171
192
|
};
|
|
172
193
|
}
|
package/package.json
CHANGED
|
@@ -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;
|
|
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
|
|
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"}
|
package/types/src/entity-sp.d.ts
CHANGED
|
@@ -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
|
|
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;
|
|
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"}
|