samlesa 4.3.3 → 4.3.5
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/metadata-sp.js
CHANGED
|
@@ -8,6 +8,37 @@ import { namespace, elementsOrder as order } from './urn.js';
|
|
|
8
8
|
import libsaml from './libsaml.js';
|
|
9
9
|
import { castArrayOpt, isNonEmptyArray, isString } from './utility.js';
|
|
10
10
|
import xml from 'xml';
|
|
11
|
+
import { select } from 'xpath';
|
|
12
|
+
import { getContext } from './api.js';
|
|
13
|
+
function toNodeArray(result) {
|
|
14
|
+
if (Array.isArray(result))
|
|
15
|
+
return result;
|
|
16
|
+
if (result)
|
|
17
|
+
return [result];
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
function unwrapSingleEntityDescriptorMetadata(meta) {
|
|
21
|
+
const metadataText = meta.toString();
|
|
22
|
+
if (!/<(?:\w+:)?EntitiesDescriptor\b/i.test(metadataText)) {
|
|
23
|
+
return meta;
|
|
24
|
+
}
|
|
25
|
+
const { dom } = getContext();
|
|
26
|
+
const rootDoc = dom.parseFromString(metadataText, 'application/xml');
|
|
27
|
+
const parserErrors = rootDoc.getElementsByTagName('parsererror');
|
|
28
|
+
if (parserErrors.length > 0) {
|
|
29
|
+
return meta;
|
|
30
|
+
}
|
|
31
|
+
const entityNodes = toNodeArray(
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
select("/*[local-name(.)='EntitiesDescriptor']/*[local-name(.)='EntityDescriptor']", rootDoc));
|
|
34
|
+
if (entityNodes.length === 0) {
|
|
35
|
+
return meta;
|
|
36
|
+
}
|
|
37
|
+
if (entityNodes.length > 1) {
|
|
38
|
+
throw new Error('ERR_MULTIPLE_METADATA_ENTITYDESCRIPTOR');
|
|
39
|
+
}
|
|
40
|
+
return entityNodes[0].toString();
|
|
41
|
+
}
|
|
11
42
|
/*
|
|
12
43
|
* @desc interface function
|
|
13
44
|
*/
|
|
@@ -24,6 +55,10 @@ export class SpMetadata extends Metadata {
|
|
|
24
55
|
*/
|
|
25
56
|
constructor(meta) {
|
|
26
57
|
const isFile = isString(meta) || meta instanceof Buffer;
|
|
58
|
+
let normalizedMeta = meta;
|
|
59
|
+
if (isFile) {
|
|
60
|
+
normalizedMeta = unwrapSingleEntityDescriptorMetadata(meta);
|
|
61
|
+
}
|
|
27
62
|
// use object configuration instead of importing metadata file directly
|
|
28
63
|
if (!isFile) {
|
|
29
64
|
const settings = meta;
|
|
@@ -186,7 +221,7 @@ export class SpMetadata extends Metadata {
|
|
|
186
221
|
descriptors[name].forEach(e => SPSSODescriptor.push({ [name]: e }));
|
|
187
222
|
});
|
|
188
223
|
// Re-assign the meta reference as a XML string|Buffer for use with the parent constructor
|
|
189
|
-
|
|
224
|
+
normalizedMeta = xml([{
|
|
190
225
|
EntityDescriptor: [{
|
|
191
226
|
_attr: {
|
|
192
227
|
entityID,
|
|
@@ -198,7 +233,7 @@ export class SpMetadata extends Metadata {
|
|
|
198
233
|
}]);
|
|
199
234
|
}
|
|
200
235
|
// Use the re-assigned meta object reference here
|
|
201
|
-
super(
|
|
236
|
+
super(normalizedMeta, [
|
|
202
237
|
{
|
|
203
238
|
key: 'spSSODescriptor',
|
|
204
239
|
localPath: ['EntityDescriptor', 'SPSSODescriptor'],
|
package/build/src/metadata.js
CHANGED
|
@@ -13,7 +13,6 @@ export default class Metadata {
|
|
|
13
13
|
* @param {object} extraParse for custom metadata extractor
|
|
14
14
|
*/
|
|
15
15
|
constructor(xml, extraParse = []) {
|
|
16
|
-
this.xmlString = xml.toString();
|
|
17
16
|
this.xmlString = xml.toString();
|
|
18
17
|
this.meta = extract(this.xmlString, extraParse.concat([
|
|
19
18
|
{
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-sp.d.ts","sourceRoot":"","sources":["../../src/metadata-sp.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,OAAO,QAAQ,EAAE,EAAC,KAAK,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata-sp.d.ts","sourceRoot":"","sources":["../../src/metadata-sp.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AACF,OAAO,QAAQ,EAAE,EAAC,KAAK,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQxD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAE7D;AAYD,KAAK,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC7C,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,6BAA6B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACxD;AAqCD,MAAM,CAAC,OAAO,WAAU,IAAI,EAAE,qBAAqB,cAElD;AAED;;EAEE;AACF,qBAAa,UAAW,SAAQ,QAAQ;IAEtC;;;MAGE;gBACU,IAAI,EAAE,qBAAqB;IAmOvC;;;MAGE;IACK,sBAAsB,IAAI,OAAO;IAOxC;;;MAGE;IACK,oBAAoB,IAAI,OAAO;IAOtC;;;;MAIE;IACK,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IACrD,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM;CAmItG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5D,eAAe,EAAE,MAAM,GAAG,EAAE,CAAC;IAC7B,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,MAAM,CAAC;IACzE,4BAA4B,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,MAAM,CAAC;IAC/E,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;CACtD;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,iBAAiB;IAExD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IAEV;;;OAGG;gBACS,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,GAAE,GAAQ;
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5D,eAAe,EAAE,MAAM,GAAG,EAAE,CAAC;IAC7B,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,MAAM,CAAC;IACzE,4BAA4B,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,MAAM,CAAC;IAC/E,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;CACtD;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,iBAAiB;IAExD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IAEV;;;OAGG;gBACS,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,GAAE,GAAQ;IA4DtD;;;OAGG;IACI,WAAW,IAAI,MAAM;IAI5B;;;OAGG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI/C;;;OAGG;IACI,WAAW,IAAI,MAAM;IAI5B;;;;OAIG;IACI,kBAAkB,CAAC,GAAG,EAAE,MAAM;IAIrC;;;OAGG;IACI,eAAe,IAAI,GAAG;IAI7B;;;;OAIG;IACI,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM;IAe3E;;;;OAIG;IACI,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM;IAejF;;;;OAIG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAUxD"}
|