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.
- package/build/src/binding-artifact.js +55 -13
- package/build/src/libsamlSoap.js +76 -5
- 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
|
@@ -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, '&')
|
|
51
|
+
.replace(/"/g, '"')
|
|
52
|
+
.replace(/</g, '<')
|
|
53
|
+
.replace(/>/g, '>');
|
|
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
|
|
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
|
|
108
|
+
return [];
|
|
46
109
|
}
|
|
47
|
-
|
|
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:
|
|
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:
|
|
181
|
+
resolvedMessage: resolvedMessageCandidates[0] ?? null,
|
|
182
|
+
resolvedMessageCandidates,
|
|
112
183
|
hasWrapperSignature: false,
|
|
113
184
|
};
|
|
114
185
|
}
|
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;
|
|
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"}
|