samlesa 2.12.5 → 2.12.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/api.js.map +1 -1
- package/build/src/binding-post.js +1 -1
- package/build/src/entity-idp.js +19 -17
- package/build/src/entity-idp.js.map +1 -1
- package/build/src/extractor.js +4 -20
- package/build/src/extractor.js.map +1 -1
- package/build/src/libsaml.js +12 -17
- package/build/src/libsaml.js.map +1 -1
- package/index.d.ts +10 -10
- package/index.js +18 -18
- package/package.json +8 -10
- package/qodana.yaml +29 -29
- package/src/api.ts +1 -1
- package/src/binding-post.ts +1 -1
- package/src/entity-idp.ts +26 -20
- package/src/extractor.ts +5 -23
- package/src/libsaml.ts +16 -18
- package/types/src/api.d.ts +1 -1
- package/types/src/entity-idp.d.ts +12 -19
- package/types/src/libsaml.d.ts +1 -1
- package/.idea/compiler.xml +0 -6
- package/.idea/deployment.xml +0 -14
- package/.idea/jsLibraryMappings.xml +0 -6
- package/build/.idea/workspace.xml +0 -70
package/build/src/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;AAAA,2CAA+E;AAa/E,MAAM,OAAO,GAAY;IACvB,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,IAAI,kBAAG,EAAE;CACf,CAAC;AAEF,SAAgB,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAFD,gCAEC;AAED,SAAgB,kBAAkB,CAAC,MAAwB;IAEzD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;KAC1F;IAED,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAErC,CAAC;AATD,gDASC;AAED,SAAgB,mBAAmB,CAAC,UAA4B,EAAE;IAChE,OAAO,CAAC,GAAG,GAAG,IAAI,kBAAG,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAFD,kDAEC"}
|
|
@@ -191,7 +191,7 @@ async function base64LoginResponse(requestInfo = {}, entity, user = {}, customTa
|
|
|
191
191
|
},
|
|
192
192
|
});
|
|
193
193
|
console.log(rawSamlResponse);
|
|
194
|
-
console.log(
|
|
194
|
+
console.log('这他妈是什么------------------');
|
|
195
195
|
}
|
|
196
196
|
// console.debug('after message signed', rawSamlResponse);
|
|
197
197
|
if (idpSetting.isAssertionEncrypted) {
|
package/build/src/entity-idp.js
CHANGED
|
@@ -9,9 +9,11 @@ exports.IdentityProvider = void 0;
|
|
|
9
9
|
* @author tngan
|
|
10
10
|
* @desc Declares the actions taken by identity provider
|
|
11
11
|
*/
|
|
12
|
+
const urn_js_1 = require("./urn.js");
|
|
13
|
+
const binding = urn_js_1.wording.binding;
|
|
12
14
|
const entity_js_1 = __importDefault(require("./entity.js"));
|
|
13
15
|
const libsaml_js_1 = __importDefault(require("./libsaml.js"));
|
|
14
|
-
const
|
|
16
|
+
const urn_js_2 = require("./urn.js");
|
|
15
17
|
const binding_post_js_1 = __importDefault(require("./binding-post.js"));
|
|
16
18
|
const binding_redirect_js_1 = __importDefault(require("./binding-redirect.js"));
|
|
17
19
|
const binding_simplesign_js_1 = __importDefault(require("./binding-simplesign.js"));
|
|
@@ -68,43 +70,43 @@ class IdentityProvider extends entity_js_1.default {
|
|
|
68
70
|
super(entitySetting, 'idp');
|
|
69
71
|
}
|
|
70
72
|
/**
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
* @param relayState the relayState from corresponding request
|
|
79
|
-
*/
|
|
80
|
-
async createLoginResponse(sp, requestInfo, binding, user, customTagReplacement, encryptThenSign, relayState) {
|
|
81
|
-
const protocol = urn_js_1.namespace.binding[binding];
|
|
73
|
+
* @desc Generates the login response for developers to design their own method
|
|
74
|
+
* @param params
|
|
75
|
+
*/
|
|
76
|
+
async createLoginResponse(params) {
|
|
77
|
+
const bindType = params?.binding ?? 'post';
|
|
78
|
+
const { sp, requestInfo = {}, user = {}, customTagReplacement, encryptThenSign = false, relayState = '' } = params;
|
|
79
|
+
const protocol = urn_js_2.namespace.binding[bindType];
|
|
82
80
|
// can support post, redirect and post simple sign bindings for login response
|
|
83
81
|
let context = null;
|
|
84
82
|
switch (protocol) {
|
|
85
|
-
case
|
|
83
|
+
case urn_js_2.namespace.binding.post:
|
|
86
84
|
context = await binding_post_js_1.default.base64LoginResponse(requestInfo, {
|
|
87
85
|
idp: this,
|
|
88
86
|
sp,
|
|
89
87
|
}, user, customTagReplacement, encryptThenSign);
|
|
90
88
|
break;
|
|
91
|
-
case
|
|
89
|
+
case urn_js_2.namespace.binding.simpleSign:
|
|
92
90
|
context = await binding_simplesign_js_1.default.base64LoginResponse(requestInfo, {
|
|
93
91
|
idp: this, sp,
|
|
94
92
|
}, user, relayState, customTagReplacement);
|
|
95
93
|
break;
|
|
96
|
-
case
|
|
94
|
+
case urn_js_2.namespace.binding.redirect:
|
|
97
95
|
return binding_redirect_js_1.default.loginResponseRedirectURL(requestInfo, {
|
|
98
96
|
idp: this,
|
|
99
97
|
sp,
|
|
100
98
|
}, user, relayState, customTagReplacement);
|
|
101
99
|
default:
|
|
102
|
-
|
|
100
|
+
context = await binding_post_js_1.default.base64LoginResponse(requestInfo, {
|
|
101
|
+
idp: this,
|
|
102
|
+
sp,
|
|
103
|
+
}, user, customTagReplacement, encryptThenSign);
|
|
104
|
+
/* throw new Error('ERR_CREATE_RESPONSE_UNDEFINED_BINDING');*/
|
|
103
105
|
}
|
|
104
106
|
return {
|
|
105
107
|
...context,
|
|
106
108
|
relayState,
|
|
107
|
-
entityEndpoint: sp.entityMeta.getAssertionConsumerService(
|
|
109
|
+
entityEndpoint: sp.entityMeta.getAssertionConsumerService(bindType ?? 'post'),
|
|
108
110
|
type: 'SAMLResponse'
|
|
109
111
|
};
|
|
110
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-idp.js","sourceRoot":"","sources":["../../src/entity-idp.ts"],"names":[],"mappings":";;;;;;AAAA;;;;EAIE;AACF,4DAAuD;AAOvD,8DAAmC;AACnC,qCAAqC;AACrC,wEAA4C;AAC5C,gFAAoD;AACpD,oFAAwD;AACxD,uCAA8C;AAC9C,6CAAwC;AAGxC;;GAEG;AACH,mBAAwB,KAA+B;IACrD,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAFD,4BAEC;AAED;;GAEG;AACH,MAAa,gBAAiB,SAAQ,mBAAM;IAI1C,YAAY,UAAoC;QAC9C,MAAM,uBAAuB,GAAG;YAC9B,uBAAuB,EAAE,KAAK;YAC9B,SAAS,EAAE;gBACT,kBAAkB,EAAE,MAAM;aAC3B;SACF,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QACzE,uBAAuB;QACvB,IAAI,UAAU,CAAC,qBAAqB,EAAE;YACpC,IAAI,IAAA,qBAAQ,EAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE;gBACpH,IAAI,0BAA0B,CAAC;gBAC/B,IAAI,iBAAiB,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,mBAAmB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,mBAAoB,CAAC,0BAA0B,EAAE;oBAC9I,0BAA0B,GAAG,oBAAO,CAAC,iCAAiC,CAAC;iBACxE;qBAAM;oBACL,0BAA0B,GAAG,UAAU,CAAC,qBAAqB,CAAC,mBAAoB,CAAC,0BAA2B,CAAC;iBAChH;gBACD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,mBAAmB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,mBAAoB,CAAC,iBAAiB,EAAE;oBACrI,iBAAiB,GAAG,oBAAO,CAAC,wBAAwB,CAAC;iBACtD;qBAAM;oBACL,iBAAiB,GAAG,UAAU,CAAC,qBAAqB,CAAC,mBAAoB,CAAC,iBAAkB,CAAC;iBAC9F;gBACD,MAAM,WAAW,GAAG;oBAClB,kBAAkB,EAAE,oBAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,qBAAqB,CAAC,UAAU,EAAE,iBAAiB,EAAE,0BAA0B,CAAC;iBAClJ,CAAC;gBACF,aAAa,CAAC,qBAAqB,GAAG;oBACpC,GAAG,aAAa,CAAC,qBAAqB;oBACtC,OAAO,EAAE,oBAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,qBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC;iBAC/F,CAAC;aACH;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;aACjD;SACF;QACD,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"entity-idp.js","sourceRoot":"","sources":["../../src/entity-idp.ts"],"names":[],"mappings":"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"}
|
package/build/src/extractor.js
CHANGED
|
@@ -185,7 +185,7 @@ exports.logoutResponseFields = [
|
|
|
185
185
|
];
|
|
186
186
|
function extract(context, fields) {
|
|
187
187
|
const { dom } = (0, api_js_1.getContext)();
|
|
188
|
-
const rootDoc = dom.parseFromString(context
|
|
188
|
+
const rootDoc = dom.parseFromString(context);
|
|
189
189
|
return fields.reduce((result, field) => {
|
|
190
190
|
// get essential fields
|
|
191
191
|
const key = field.key;
|
|
@@ -201,7 +201,7 @@ function extract(context, fields) {
|
|
|
201
201
|
// if shortcut is used, then replace the doc
|
|
202
202
|
// it's a design for overriding the doc used during runtime
|
|
203
203
|
if (shortcut) {
|
|
204
|
-
targetDoc = dom.parseFromString(shortcut
|
|
204
|
+
targetDoc = dom.parseFromString(shortcut);
|
|
205
205
|
}
|
|
206
206
|
// special case: multiple path
|
|
207
207
|
/*
|
|
@@ -223,7 +223,6 @@ function extract(context, fields) {
|
|
|
223
223
|
.join(' | ');
|
|
224
224
|
return {
|
|
225
225
|
...result,
|
|
226
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
227
226
|
[key]: (0, utility_js_1.uniq)((0, xpath_1.select)(multiXPaths, targetDoc).map((n) => n.nodeValue).filter(utility_js_1.notEmpty))
|
|
228
227
|
};
|
|
229
228
|
}
|
|
@@ -246,18 +245,15 @@ function extract(context, fields) {
|
|
|
246
245
|
const fullLocalXPath = `${baseXPath}${indexPath}`;
|
|
247
246
|
const parentNodes = (0, xpath_1.select)(baseXPath, targetDoc);
|
|
248
247
|
// [uid, mail, edupersonaffiliation], ready for aggregate
|
|
249
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
250
248
|
const parentAttributes = (0, xpath_1.select)(fullLocalXPath, targetDoc).map((n) => n.value);
|
|
251
249
|
// [attribute, attributevalue]
|
|
252
250
|
const childXPath = buildAbsoluteXPath([(0, utility_js_1.last)(localPath)].concat(attributePath));
|
|
253
251
|
const childAttributeXPath = buildAttributeXPath(attributes);
|
|
254
252
|
const fullChildXPath = `${childXPath}${childAttributeXPath}`;
|
|
255
253
|
// [ 'test', 'test@example.com', [ 'users', 'examplerole1' ] ]
|
|
256
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
257
254
|
const childAttributes = parentNodes.map(node => {
|
|
258
|
-
const nodeDoc = dom.parseFromString(node.toString()
|
|
255
|
+
const nodeDoc = dom.parseFromString(node.toString());
|
|
259
256
|
if (attributes.length === 0) {
|
|
260
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
261
257
|
const childValues = (0, xpath_1.select)(fullChildXPath, nodeDoc).map((n) => n.nodeValue);
|
|
262
258
|
if (childValues.length === 1) {
|
|
263
259
|
return childValues[0];
|
|
@@ -265,7 +261,6 @@ function extract(context, fields) {
|
|
|
265
261
|
return childValues;
|
|
266
262
|
}
|
|
267
263
|
if (attributes.length > 0) {
|
|
268
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
269
264
|
const childValues = (0, xpath_1.select)(fullChildXPath, nodeDoc).map((n) => n.value);
|
|
270
265
|
if (childValues.length === 1) {
|
|
271
266
|
return childValues[0];
|
|
@@ -293,14 +288,10 @@ function extract(context, fields) {
|
|
|
293
288
|
if (isEntire) {
|
|
294
289
|
const node = (0, xpath_1.select)(baseXPath, targetDoc);
|
|
295
290
|
let value = null;
|
|
296
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
297
291
|
if (node.length === 1) {
|
|
298
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
299
292
|
value = node[0].toString();
|
|
300
293
|
}
|
|
301
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
302
294
|
if (node.length > 1) {
|
|
303
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
304
295
|
value = node.map(n => n.toString());
|
|
305
296
|
}
|
|
306
297
|
return {
|
|
@@ -317,12 +308,10 @@ function extract(context, fields) {
|
|
|
317
308
|
}
|
|
318
309
|
*/
|
|
319
310
|
if (attributes.length > 1) {
|
|
320
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
321
311
|
const baseNode = (0, xpath_1.select)(baseXPath, targetDoc).map(n => n.toString());
|
|
322
312
|
const childXPath = `${buildAbsoluteXPath([(0, utility_js_1.last)(localPath)])}${attributeXPath}`;
|
|
323
313
|
const attributeValues = baseNode.map((node) => {
|
|
324
|
-
const nodeDoc = dom.parseFromString(node
|
|
325
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
314
|
+
const nodeDoc = dom.parseFromString(node);
|
|
326
315
|
const values = (0, xpath_1.select)(childXPath, nodeDoc).reduce((r, n) => {
|
|
327
316
|
r[(0, camelcase_1.default)(n.name, { locale: 'en-us' })] = n.value;
|
|
328
317
|
return r;
|
|
@@ -344,7 +333,6 @@ function extract(context, fields) {
|
|
|
344
333
|
*/
|
|
345
334
|
if (attributes.length === 1) {
|
|
346
335
|
const fullPath = `${baseXPath}${attributeXPath}`;
|
|
347
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
348
336
|
const attributeValues = (0, xpath_1.select)(fullPath, targetDoc).map((n) => n.value);
|
|
349
337
|
return {
|
|
350
338
|
...result,
|
|
@@ -362,15 +350,11 @@ function extract(context, fields) {
|
|
|
362
350
|
if (attributes.length === 0) {
|
|
363
351
|
let attributeValue = null;
|
|
364
352
|
const node = (0, xpath_1.select)(baseXPath, targetDoc);
|
|
365
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
366
353
|
if (node.length === 1) {
|
|
367
354
|
const fullPath = `string(${baseXPath}${attributeXPath})`;
|
|
368
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
369
355
|
attributeValue = (0, xpath_1.select)(fullPath, targetDoc);
|
|
370
356
|
}
|
|
371
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
372
357
|
if (node.length > 1) {
|
|
373
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
374
358
|
attributeValue = node.filter((n) => n.firstChild)
|
|
375
359
|
.map((n) => n.firstChild.nodeValue);
|
|
376
360
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA8C;AAC9C,6CAA+D;AAC/D,qCAAsC;AACtC,0DAAkC;
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/extractor.ts"],"names":[],"mappings":"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"}
|
package/build/src/libsaml.js
CHANGED
|
@@ -142,7 +142,7 @@ const libSaml = () => {
|
|
|
142
142
|
return algAlias;
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
return nrsaAliasMappingForNode[signatureAlgorithms.
|
|
145
|
+
return nrsaAliasMappingForNode[signatureAlgorithms.RSA_SHA256];
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
148
|
* @private
|
|
@@ -291,7 +291,7 @@ const libSaml = () => {
|
|
|
291
291
|
*/
|
|
292
292
|
verifySignature(xml, opts) {
|
|
293
293
|
const { dom } = (0, api_js_1.getContext)();
|
|
294
|
-
const doc = dom.parseFromString(xml
|
|
294
|
+
const doc = dom.parseFromString(xml);
|
|
295
295
|
const docParser = new xmldom_1.DOMParser();
|
|
296
296
|
// In order to avoid the wrapping attack, we have changed to use absolute xpath instead of naively fetching the signature element
|
|
297
297
|
// message signature (logout response / saml response)
|
|
@@ -308,7 +308,6 @@ const libSaml = () => {
|
|
|
308
308
|
selection = selection.concat(messageSignatureNode);
|
|
309
309
|
selection = selection.concat(assertionSignatureNode);
|
|
310
310
|
// try to catch potential wrapping attack
|
|
311
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
312
311
|
if (wrappingElementNode.length !== 0) {
|
|
313
312
|
throw new Error('ERR_POTENTIAL_WRAPPING_ATTACK');
|
|
314
313
|
}
|
|
@@ -371,30 +370,26 @@ const libSaml = () => {
|
|
|
371
370
|
// attempt is made to get the signed Reference as a string();
|
|
372
371
|
// note, we don't have access to the actual signedReferences API unfortunately
|
|
373
372
|
// mainly a sanity check here for SAML. (Although ours would still be secure, if multiple references are used)
|
|
374
|
-
if (!(sig.
|
|
373
|
+
if (!(sig.getReferences().length >= 1)) {
|
|
375
374
|
throw new Error('NO_SIGNATURE_REFERENCES');
|
|
376
375
|
}
|
|
377
376
|
const signedVerifiedXML = sig.getSignedReferences()[0];
|
|
378
377
|
const rootNode = docParser.parseFromString(signedVerifiedXML, 'text/xml').documentElement;
|
|
379
378
|
// process the verified signature:
|
|
380
379
|
// case 1, rootSignedDoc is a response:
|
|
381
|
-
if (rootNode
|
|
380
|
+
if (rootNode.localName === 'Response') {
|
|
382
381
|
// try getting the Xml from the first assertion
|
|
383
382
|
const EncryptedAssertions = (0, xpath_1.select)("./*[local-name()='EncryptedAssertion']", rootNode);
|
|
384
383
|
const assertions = (0, xpath_1.select)("./*[local-name()='Assertion']", rootNode);
|
|
385
384
|
// now we can process the assertion as an assertion
|
|
386
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
387
385
|
if (EncryptedAssertions.length === 1) {
|
|
388
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
389
386
|
return [true, EncryptedAssertions[0].toString()];
|
|
390
387
|
}
|
|
391
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
392
388
|
if (assertions.length === 1) {
|
|
393
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
394
389
|
return [true, assertions[0].toString()];
|
|
395
390
|
}
|
|
396
391
|
}
|
|
397
|
-
else if (rootNode
|
|
392
|
+
else if (rootNode.localName === 'Assertion') {
|
|
398
393
|
return [true, rootNode.toString()];
|
|
399
394
|
}
|
|
400
395
|
else {
|
|
@@ -485,7 +480,7 @@ const libSaml = () => {
|
|
|
485
480
|
* @param signingAlgorithm - 签名算法 (默认 'rsa-sha256')
|
|
486
481
|
* @returns 消息签名
|
|
487
482
|
*/
|
|
488
|
-
constructMessageSignature(octetString, key, passphrase, isBase64 = true, signingAlgorithm = nrsaAliasMappingForNode[signatureAlgorithms.
|
|
483
|
+
constructMessageSignature(octetString, key, passphrase, isBase64 = true, signingAlgorithm = nrsaAliasMappingForNode[signatureAlgorithms.RSA_SHA256]) {
|
|
489
484
|
try {
|
|
490
485
|
// 1. 标准化输入数据
|
|
491
486
|
const inputData = Buffer.isBuffer(octetString)
|
|
@@ -555,7 +550,7 @@ const libSaml = () => {
|
|
|
555
550
|
const sourceEntitySetting = sourceEntity.entitySetting;
|
|
556
551
|
const targetEntityMetadata = targetEntity.entityMeta;
|
|
557
552
|
const { dom } = (0, api_js_1.getContext)();
|
|
558
|
-
const doc = dom.parseFromString(xml
|
|
553
|
+
const doc = dom.parseFromString(xml);
|
|
559
554
|
const assertions = (0, xpath_1.select)("//*[local-name(.)='Assertion']", doc);
|
|
560
555
|
if (!Array.isArray(assertions) || assertions.length === 0) {
|
|
561
556
|
throw new Error('ERR_NO_ASSERTION');
|
|
@@ -585,8 +580,8 @@ const libSaml = () => {
|
|
|
585
580
|
return reject(new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION'));
|
|
586
581
|
}
|
|
587
582
|
const { encryptedAssertion: encAssertionPrefix } = sourceEntitySetting.tagPrefix;
|
|
588
|
-
const encryptAssertionDoc = dom.parseFromString(`<${encAssertionPrefix}:EncryptedAssertion xmlns:${encAssertionPrefix}="${urn_js_1.namespace.names.assertion}">${res}</${encAssertionPrefix}:EncryptedAssertion
|
|
589
|
-
doc
|
|
583
|
+
const encryptAssertionDoc = dom.parseFromString(`<${encAssertionPrefix}:EncryptedAssertion xmlns:${encAssertionPrefix}="${urn_js_1.namespace.names.assertion}">${res}</${encAssertionPrefix}:EncryptedAssertion>`);
|
|
584
|
+
doc.documentElement.replaceChild(encryptAssertionDoc.documentElement, rawAssertionNode);
|
|
590
585
|
return resolve(utility_js_1.default.base64Encode(doc.toString()));
|
|
591
586
|
});
|
|
592
587
|
}
|
|
@@ -612,7 +607,7 @@ const libSaml = () => {
|
|
|
612
607
|
// Perform encryption depends on the setting of where the message is sent, default is false
|
|
613
608
|
const hereSetting = here.entitySetting;
|
|
614
609
|
const { dom } = (0, api_js_1.getContext)();
|
|
615
|
-
const doc = dom.parseFromString(entireXML
|
|
610
|
+
const doc = dom.parseFromString(entireXML);
|
|
616
611
|
const encryptedAssertions = (0, xpath_1.select)("/*[contains(local-name(), 'Response')]/*[local-name(.)='EncryptedAssertion']", doc);
|
|
617
612
|
if (!Array.isArray(encryptedAssertions) || encryptedAssertions.length === 0) {
|
|
618
613
|
throw new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION');
|
|
@@ -631,8 +626,8 @@ const libSaml = () => {
|
|
|
631
626
|
if (!res) {
|
|
632
627
|
return reject(new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION'));
|
|
633
628
|
}
|
|
634
|
-
const rawAssertionDoc = dom.parseFromString(res
|
|
635
|
-
doc
|
|
629
|
+
const rawAssertionDoc = dom.parseFromString(res);
|
|
630
|
+
doc.documentElement.replaceChild(rawAssertionDoc.documentElement, encAssertionNode);
|
|
636
631
|
return resolve([doc.toString(), res]);
|
|
637
632
|
});
|
|
638
633
|
});
|
package/build/src/libsaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libsaml.js","sourceRoot":"","sources":["../../src/libsaml.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libsaml.js","sourceRoot":"","sources":["../../src/libsaml.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import IdentityProvider, { IdentityProvider as IdentityProviderInstance } from './src/entity-idp';
|
|
2
|
-
import ServiceProvider, { ServiceProvider as ServiceProviderInstance } from './src/entity-sp';
|
|
3
|
-
export { default as IdPMetadata } from './src/metadata-idp';
|
|
4
|
-
export { default as SPMetadata } from './src/metadata-sp';
|
|
5
|
-
export { default as Utility } from './src/utility';
|
|
6
|
-
export { default as SamlLib } from './src/libsaml';
|
|
7
|
-
import * as Constants from './src/urn';
|
|
8
|
-
import * as Extractor from './src/extractor';
|
|
9
|
-
import { setSchemaValidator, setDOMParserOptions } from './src/api';
|
|
10
|
-
export { Constants, Extractor, IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance, setSchemaValidator, setDOMParserOptions };
|
|
1
|
+
import IdentityProvider, { IdentityProvider as IdentityProviderInstance } from './src/entity-idp';
|
|
2
|
+
import ServiceProvider, { ServiceProvider as ServiceProviderInstance } from './src/entity-sp';
|
|
3
|
+
export { default as IdPMetadata } from './src/metadata-idp';
|
|
4
|
+
export { default as SPMetadata } from './src/metadata-sp';
|
|
5
|
+
export { default as Utility } from './src/utility';
|
|
6
|
+
export { default as SamlLib } from './src/libsaml';
|
|
7
|
+
import * as Constants from './src/urn';
|
|
8
|
+
import * as Extractor from './src/extractor';
|
|
9
|
+
import { setSchemaValidator, setDOMParserOptions } from './src/api';
|
|
10
|
+
export { Constants, Extractor, IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance, setSchemaValidator, setDOMParserOptions };
|
package/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
// version <= 1.25
|
|
2
|
-
import IdentityProvider, { IdentityProvider as IdentityProviderInstance } from './src/entity-idp';
|
|
3
|
-
import ServiceProvider, { ServiceProvider as ServiceProviderInstance } from './src/entity-sp';
|
|
4
|
-
export { default as IdPMetadata } from './src/metadata-idp';
|
|
5
|
-
export { default as SPMetadata } from './src/metadata-sp';
|
|
6
|
-
export { default as Utility } from './src/utility';
|
|
7
|
-
export { default as SamlLib } from './src/libsaml';
|
|
8
|
-
// roadmap
|
|
9
|
-
// new name convention in version >= 3.0
|
|
10
|
-
import * as Constants from './src/urn';
|
|
11
|
-
import * as Extractor from './src/extractor';
|
|
12
|
-
// exposed methods for customizing samlify
|
|
13
|
-
import { setSchemaValidator, setDOMParserOptions } from './src/api';
|
|
14
|
-
export { Constants, Extractor,
|
|
15
|
-
// temp: resolve the conflict after version >= 3.0
|
|
16
|
-
IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance,
|
|
17
|
-
// set context
|
|
18
|
-
setSchemaValidator, setDOMParserOptions };
|
|
1
|
+
// version <= 1.25
|
|
2
|
+
import IdentityProvider, { IdentityProvider as IdentityProviderInstance } from './src/entity-idp';
|
|
3
|
+
import ServiceProvider, { ServiceProvider as ServiceProviderInstance } from './src/entity-sp';
|
|
4
|
+
export { default as IdPMetadata } from './src/metadata-idp';
|
|
5
|
+
export { default as SPMetadata } from './src/metadata-sp';
|
|
6
|
+
export { default as Utility } from './src/utility';
|
|
7
|
+
export { default as SamlLib } from './src/libsaml';
|
|
8
|
+
// roadmap
|
|
9
|
+
// new name convention in version >= 3.0
|
|
10
|
+
import * as Constants from './src/urn';
|
|
11
|
+
import * as Extractor from './src/extractor';
|
|
12
|
+
// exposed methods for customizing samlify
|
|
13
|
+
import { setSchemaValidator, setDOMParserOptions } from './src/api';
|
|
14
|
+
export { Constants, Extractor,
|
|
15
|
+
// temp: resolve the conflict after version >= 3.0
|
|
16
|
+
IdentityProvider, IdentityProviderInstance, ServiceProvider, ServiceProviderInstance,
|
|
17
|
+
// set context
|
|
18
|
+
setSchemaValidator, setDOMParserOptions };
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "samlesa",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.6",
|
|
4
4
|
"description": "High-level API for Single Sign On (SAML 2.0) 维护分支:修复原项目samlify的一些问题 ",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -32,24 +32,22 @@
|
|
|
32
32
|
},
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"xml-encryption": "^3.1
|
|
36
|
-
"@xmldom/xmldom": "^0.
|
|
35
|
+
"xml-encryption": "^3.0.1",
|
|
36
|
+
"@xmldom/xmldom": "^0.8.6",
|
|
37
37
|
"camelcase": "^6.2.0",
|
|
38
|
-
"pako": "^
|
|
39
|
-
"uuid": "^
|
|
38
|
+
"pako": "^1.0.10",
|
|
39
|
+
"uuid": "^10.0.0",
|
|
40
40
|
"xml": "^1.0.1",
|
|
41
|
-
"xml-crypto": "^6.1.
|
|
41
|
+
"xml-crypto": "^6.1.0",
|
|
42
42
|
"xml-escape": "^1.1.0",
|
|
43
|
-
"xpath": "^0.0.
|
|
43
|
+
"xpath": "^0.0.32"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@ava/typescript": "^1.1.1",
|
|
47
47
|
"@types/node": "^22.15.17",
|
|
48
|
-
"@types/node-forge": "^1.0.1",
|
|
49
|
-
"@types/node-rsa": "^1.1.1",
|
|
50
48
|
"@types/pako": "^1.0.1",
|
|
49
|
+
"@types/uuid": "^10.0.0",
|
|
51
50
|
"@types/xmldom": "^0.1.31",
|
|
52
|
-
"@types/xml-encryption": "1.2.4",
|
|
53
51
|
"ava": "^4.1.0",
|
|
54
52
|
"coveralls": "^3.1.1",
|
|
55
53
|
"nyc": "^17.1.0",
|
package/qodana.yaml
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
#-------------------------------------------------------------------------------#
|
|
2
|
-
# Qodana analysis is configured by qodana.yaml file #
|
|
3
|
-
# https://www.jetbrains.com/help/qodana/qodana-yaml.html #
|
|
4
|
-
#-------------------------------------------------------------------------------#
|
|
5
|
-
version: "1.0"
|
|
6
|
-
|
|
7
|
-
#Specify inspection profile for code analysis
|
|
8
|
-
profile:
|
|
9
|
-
name: qodana.starter
|
|
10
|
-
|
|
11
|
-
#Enable inspections
|
|
12
|
-
#include:
|
|
13
|
-
# - name: <SomeEnabledInspectionId>
|
|
14
|
-
|
|
15
|
-
#Disable inspections
|
|
16
|
-
#exclude:
|
|
17
|
-
# - name: <SomeDisabledInspectionId>
|
|
18
|
-
# paths:
|
|
19
|
-
# - <path/where/not/run/inspection>
|
|
20
|
-
|
|
21
|
-
#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
|
|
22
|
-
#bootstrap: sh ./prepare-qodana.sh
|
|
23
|
-
|
|
24
|
-
#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline)
|
|
25
|
-
#plugins:
|
|
26
|
-
# - id: <plugin.id> #(plugin id can be found at https://plugins.jetbrains.com)
|
|
27
|
-
|
|
28
|
-
#Specify Qodana linter for analysis (Applied in CI/CD pipeline)
|
|
29
|
-
linter: jetbrains/qodana-js:2025.1
|
|
1
|
+
#-------------------------------------------------------------------------------#
|
|
2
|
+
# Qodana analysis is configured by qodana.yaml file #
|
|
3
|
+
# https://www.jetbrains.com/help/qodana/qodana-yaml.html #
|
|
4
|
+
#-------------------------------------------------------------------------------#
|
|
5
|
+
version: "1.0"
|
|
6
|
+
|
|
7
|
+
#Specify inspection profile for code analysis
|
|
8
|
+
profile:
|
|
9
|
+
name: qodana.starter
|
|
10
|
+
|
|
11
|
+
#Enable inspections
|
|
12
|
+
#include:
|
|
13
|
+
# - name: <SomeEnabledInspectionId>
|
|
14
|
+
|
|
15
|
+
#Disable inspections
|
|
16
|
+
#exclude:
|
|
17
|
+
# - name: <SomeDisabledInspectionId>
|
|
18
|
+
# paths:
|
|
19
|
+
# - <path/where/not/run/inspection>
|
|
20
|
+
|
|
21
|
+
#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
|
|
22
|
+
#bootstrap: sh ./prepare-qodana.sh
|
|
23
|
+
|
|
24
|
+
#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline)
|
|
25
|
+
#plugins:
|
|
26
|
+
# - id: <plugin.id> #(plugin id can be found at https://plugins.jetbrains.com)
|
|
27
|
+
|
|
28
|
+
#Specify Qodana linter for analysis (Applied in CI/CD pipeline)
|
|
29
|
+
linter: jetbrains/qodana-js:2025.1
|
package/src/api.ts
CHANGED
package/src/binding-post.ts
CHANGED
|
@@ -168,7 +168,7 @@ async function base64LoginResponse(requestInfo: any = {}, entity: any, user: any
|
|
|
168
168
|
},
|
|
169
169
|
});
|
|
170
170
|
console.log(rawSamlResponse);
|
|
171
|
-
console.log(
|
|
171
|
+
console.log('这他妈是什么------------------')
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
// console.debug('after message signed', rawSamlResponse);
|
package/src/entity-idp.ts
CHANGED
|
@@ -3,12 +3,19 @@
|
|
|
3
3
|
* @author tngan
|
|
4
4
|
* @desc Declares the actions taken by identity provider
|
|
5
5
|
*/
|
|
6
|
+
import {
|
|
7
|
+
wording,
|
|
8
|
+
} from './urn.js';
|
|
9
|
+
const binding = wording.binding
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
6
13
|
import Entity, { ESamlHttpRequest } from './entity.js';
|
|
7
14
|
import {
|
|
8
15
|
ServiceProviderConstructor as ServiceProvider,
|
|
9
16
|
ServiceProviderMetadata,
|
|
10
17
|
IdentityProviderMetadata,
|
|
11
|
-
IdentityProviderSettings
|
|
18
|
+
IdentityProviderSettings
|
|
12
19
|
} from './types.js';
|
|
13
20
|
import libsaml from './libsaml.js';
|
|
14
21
|
import { namespace } from './urn.js';
|
|
@@ -71,25 +78,21 @@ export class IdentityProvider extends Entity {
|
|
|
71
78
|
}
|
|
72
79
|
|
|
73
80
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
*/
|
|
83
|
-
public async createLoginResponse(
|
|
84
|
-
sp: ServiceProvider,
|
|
85
|
-
requestInfo: { [key: string]: any },
|
|
86
|
-
binding: string,
|
|
87
|
-
user: { [key: string]: any },
|
|
81
|
+
* @desc Generates the login response for developers to design their own method
|
|
82
|
+
* @param params
|
|
83
|
+
*/
|
|
84
|
+
public async createLoginResponse(params:{
|
|
85
|
+
sp: ServiceProvider;
|
|
86
|
+
requestInfo: Record<string, any>;
|
|
87
|
+
binding?: string; // 可选参数,带默认值
|
|
88
|
+
user: Record<string, any>;
|
|
88
89
|
customTagReplacement?: (template: string) => BindingContext,
|
|
89
90
|
encryptThenSign?: boolean,
|
|
90
91
|
relayState?: string,
|
|
91
|
-
) {
|
|
92
|
-
|
|
92
|
+
}) {
|
|
93
|
+
const bindType = params?.binding ?? 'post';
|
|
94
|
+
const { sp,requestInfo ={}, user = {},customTagReplacement,encryptThenSign = false ,relayState=''} = params
|
|
95
|
+
const protocol = namespace.binding[bindType];
|
|
93
96
|
// can support post, redirect and post simple sign bindings for login response
|
|
94
97
|
let context: any = null;
|
|
95
98
|
switch (protocol) {
|
|
@@ -111,15 +114,18 @@ export class IdentityProvider extends Entity {
|
|
|
111
114
|
idp: this,
|
|
112
115
|
sp,
|
|
113
116
|
}, user, relayState, customTagReplacement);
|
|
114
|
-
|
|
115
117
|
default:
|
|
116
|
-
|
|
118
|
+
context = await postBinding.base64LoginResponse(requestInfo, {
|
|
119
|
+
idp: this,
|
|
120
|
+
sp,
|
|
121
|
+
}, user, customTagReplacement, encryptThenSign);
|
|
122
|
+
/* throw new Error('ERR_CREATE_RESPONSE_UNDEFINED_BINDING');*/
|
|
117
123
|
}
|
|
118
124
|
|
|
119
125
|
return {
|
|
120
126
|
...context,
|
|
121
127
|
relayState,
|
|
122
|
-
entityEndpoint: (sp.entityMeta as ServiceProviderMetadata).getAssertionConsumerService(
|
|
128
|
+
entityEndpoint: (sp.entityMeta as ServiceProviderMetadata).getAssertionConsumerService(bindType ?? 'post') as string,
|
|
123
129
|
type: 'SAMLResponse'
|
|
124
130
|
};
|
|
125
131
|
}
|
package/src/extractor.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { uniq, last, zipObject, notEmpty } from './utility.js';
|
|
|
3
3
|
import { getContext } from './api.js';
|
|
4
4
|
import camelCase from 'camelcase';
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
interface ExtractorField {
|
|
8
7
|
key: string;
|
|
9
8
|
localPath: string[] | string[][];
|
|
@@ -199,7 +198,7 @@ export const logoutResponseFields: ExtractorFields = [
|
|
|
199
198
|
|
|
200
199
|
export function extract(context: string, fields) {
|
|
201
200
|
const { dom } = getContext();
|
|
202
|
-
const rootDoc = dom.parseFromString(context
|
|
201
|
+
const rootDoc = dom.parseFromString(context);
|
|
203
202
|
|
|
204
203
|
return fields.reduce((result: any, field) => {
|
|
205
204
|
// get essential fields
|
|
@@ -213,12 +212,12 @@ export function extract(context: string, fields) {
|
|
|
213
212
|
const attributePath = field.attributePath;
|
|
214
213
|
|
|
215
214
|
// set allowing overriding if there is a shortcut injected
|
|
216
|
-
let targetDoc = rootDoc
|
|
215
|
+
let targetDoc = rootDoc;
|
|
217
216
|
|
|
218
217
|
// if shortcut is used, then replace the doc
|
|
219
218
|
// it's a design for overriding the doc used during runtime
|
|
220
219
|
if (shortcut) {
|
|
221
|
-
targetDoc = dom.parseFromString(shortcut
|
|
220
|
+
targetDoc = dom.parseFromString(shortcut);
|
|
222
221
|
}
|
|
223
222
|
|
|
224
223
|
// special case: multiple path
|
|
@@ -240,10 +239,8 @@ export function extract(context: string, fields) {
|
|
|
240
239
|
})
|
|
241
240
|
.join(' | ');
|
|
242
241
|
|
|
243
|
-
|
|
244
242
|
return {
|
|
245
243
|
...result,
|
|
246
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
247
244
|
[key]: uniq(select(multiXPaths, targetDoc).map((n: Node) => n.nodeValue).filter(notEmpty))
|
|
248
245
|
};
|
|
249
246
|
}
|
|
@@ -268,18 +265,15 @@ export function extract(context: string, fields) {
|
|
|
268
265
|
const fullLocalXPath = `${baseXPath}${indexPath}`;
|
|
269
266
|
const parentNodes = select(baseXPath, targetDoc);
|
|
270
267
|
// [uid, mail, edupersonaffiliation], ready for aggregate
|
|
271
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
272
268
|
const parentAttributes = select(fullLocalXPath, targetDoc).map((n: Attr) => n.value);
|
|
273
269
|
// [attribute, attributevalue]
|
|
274
270
|
const childXPath = buildAbsoluteXPath([last(localPath)].concat(attributePath));
|
|
275
271
|
const childAttributeXPath = buildAttributeXPath(attributes);
|
|
276
272
|
const fullChildXPath = `${childXPath}${childAttributeXPath}`;
|
|
277
273
|
// [ 'test', 'test@example.com', [ 'users', 'examplerole1' ] ]
|
|
278
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
279
274
|
const childAttributes = parentNodes.map(node => {
|
|
280
|
-
const nodeDoc = dom.parseFromString(node.toString()
|
|
275
|
+
const nodeDoc = dom.parseFromString(node.toString());
|
|
281
276
|
if (attributes.length === 0) {
|
|
282
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
283
277
|
const childValues = select(fullChildXPath, nodeDoc).map((n: Node) => n.nodeValue);
|
|
284
278
|
if (childValues.length === 1) {
|
|
285
279
|
return childValues[0];
|
|
@@ -287,7 +281,6 @@ export function extract(context: string, fields) {
|
|
|
287
281
|
return childValues;
|
|
288
282
|
}
|
|
289
283
|
if (attributes.length > 0) {
|
|
290
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
291
284
|
const childValues = select(fullChildXPath, nodeDoc).map((n: Attr) => n.value);
|
|
292
285
|
if (childValues.length === 1) {
|
|
293
286
|
return childValues[0];
|
|
@@ -316,14 +309,10 @@ export function extract(context: string, fields) {
|
|
|
316
309
|
if (isEntire) {
|
|
317
310
|
const node = select(baseXPath, targetDoc);
|
|
318
311
|
let value: string | string[] | null = null;
|
|
319
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
320
312
|
if (node.length === 1) {
|
|
321
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
322
313
|
value = node[0].toString();
|
|
323
314
|
}
|
|
324
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
325
315
|
if (node.length > 1) {
|
|
326
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
327
316
|
value = node.map(n => n.toString());
|
|
328
317
|
}
|
|
329
318
|
return {
|
|
@@ -341,12 +330,10 @@ export function extract(context: string, fields) {
|
|
|
341
330
|
}
|
|
342
331
|
*/
|
|
343
332
|
if (attributes.length > 1) {
|
|
344
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
345
333
|
const baseNode = select(baseXPath, targetDoc).map(n => n.toString());
|
|
346
334
|
const childXPath = `${buildAbsoluteXPath([last(localPath)])}${attributeXPath}`;
|
|
347
335
|
const attributeValues = baseNode.map((node: string) => {
|
|
348
|
-
const nodeDoc = dom.parseFromString(node
|
|
349
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
336
|
+
const nodeDoc = dom.parseFromString(node);
|
|
350
337
|
const values = select(childXPath, nodeDoc).reduce((r: any, n: Attr) => {
|
|
351
338
|
r[camelCase(n.name, {locale: 'en-us'})] = n.value;
|
|
352
339
|
return r;
|
|
@@ -368,7 +355,6 @@ export function extract(context: string, fields) {
|
|
|
368
355
|
*/
|
|
369
356
|
if (attributes.length === 1) {
|
|
370
357
|
const fullPath = `${baseXPath}${attributeXPath}`;
|
|
371
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
372
358
|
const attributeValues = select(fullPath, targetDoc).map((n: Attr) => n.value);
|
|
373
359
|
return {
|
|
374
360
|
...result,
|
|
@@ -386,15 +372,11 @@ export function extract(context: string, fields) {
|
|
|
386
372
|
if (attributes.length === 0) {
|
|
387
373
|
let attributeValue: SelectedValue[] | (string | null)[] | null = null;
|
|
388
374
|
const node = select(baseXPath, targetDoc);
|
|
389
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
390
375
|
if (node.length === 1) {
|
|
391
376
|
const fullPath = `string(${baseXPath}${attributeXPath})`;
|
|
392
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
393
377
|
attributeValue = select(fullPath, targetDoc);
|
|
394
378
|
}
|
|
395
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
396
379
|
if (node.length > 1) {
|
|
397
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
398
380
|
attributeValue = node.filter((n: Node) => n.firstChild)
|
|
399
381
|
.map((n: Node) => n.firstChild!.nodeValue);
|
|
400
382
|
}
|
package/src/libsaml.ts
CHANGED
|
@@ -217,7 +217,7 @@ const libSaml = () => {
|
|
|
217
217
|
return algAlias;
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
|
-
return nrsaAliasMappingForNode[signatureAlgorithms.
|
|
220
|
+
return nrsaAliasMappingForNode[signatureAlgorithms.RSA_SHA256];
|
|
221
221
|
}
|
|
222
222
|
/**
|
|
223
223
|
* @private
|
|
@@ -391,7 +391,7 @@ const libSaml = () => {
|
|
|
391
391
|
*/
|
|
392
392
|
verifySignature(xml: string, opts: SignatureVerifierOptions) {
|
|
393
393
|
const { dom } = getContext();
|
|
394
|
-
const doc = dom.parseFromString(xml
|
|
394
|
+
const doc = dom.parseFromString(xml);
|
|
395
395
|
|
|
396
396
|
const docParser = new DOMParser();
|
|
397
397
|
// In order to avoid the wrapping attack, we have changed to use absolute xpath instead of naively fetching the signature element
|
|
@@ -412,7 +412,6 @@ const libSaml = () => {
|
|
|
412
412
|
selection = selection.concat(assertionSignatureNode);
|
|
413
413
|
|
|
414
414
|
// try to catch potential wrapping attack
|
|
415
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
416
415
|
if (wrappingElementNode.length !== 0) {
|
|
417
416
|
throw new Error('ERR_POTENTIAL_WRAPPING_ATTACK');
|
|
418
417
|
}
|
|
@@ -492,14 +491,14 @@ const libSaml = () => {
|
|
|
492
491
|
// attempt is made to get the signed Reference as a string();
|
|
493
492
|
// note, we don't have access to the actual signedReferences API unfortunately
|
|
494
493
|
// mainly a sanity check here for SAML. (Although ours would still be secure, if multiple references are used)
|
|
495
|
-
if (!(sig.
|
|
494
|
+
if (!(sig.getReferences().length >= 1)) {
|
|
496
495
|
throw new Error('NO_SIGNATURE_REFERENCES')
|
|
497
496
|
}
|
|
498
497
|
const signedVerifiedXML = sig.getSignedReferences()[0];
|
|
499
|
-
const rootNode = docParser.parseFromString(signedVerifiedXML, 'text/xml').documentElement
|
|
498
|
+
const rootNode = docParser.parseFromString(signedVerifiedXML, 'text/xml').documentElement;
|
|
500
499
|
// process the verified signature:
|
|
501
500
|
// case 1, rootSignedDoc is a response:
|
|
502
|
-
if (rootNode
|
|
501
|
+
if (rootNode.localName === 'Response') {
|
|
503
502
|
|
|
504
503
|
// try getting the Xml from the first assertion
|
|
505
504
|
const EncryptedAssertions = select(
|
|
@@ -512,18 +511,17 @@ const libSaml = () => {
|
|
|
512
511
|
);
|
|
513
512
|
|
|
514
513
|
// now we can process the assertion as an assertion
|
|
515
|
-
// @ts-expect-error misssing Node properties are not needed
|
|
516
514
|
if (EncryptedAssertions.length === 1) {
|
|
517
|
-
|
|
515
|
+
|
|
518
516
|
return [true, EncryptedAssertions[0].toString()];
|
|
519
517
|
}
|
|
520
|
-
|
|
518
|
+
|
|
521
519
|
if (assertions.length === 1) {
|
|
522
|
-
|
|
520
|
+
|
|
523
521
|
return [true, assertions[0].toString()];
|
|
524
522
|
}
|
|
525
523
|
|
|
526
|
-
} else if (rootNode
|
|
524
|
+
} else if (rootNode.localName === 'Assertion') {
|
|
527
525
|
return [true, rootNode.toString()];
|
|
528
526
|
} else {
|
|
529
527
|
return [true, null]; // signature is valid. But there is no assertion node here. It could be metadata node, hence return null
|
|
@@ -620,7 +618,7 @@ const libSaml = () => {
|
|
|
620
618
|
key: string | Buffer,
|
|
621
619
|
passphrase?: string,
|
|
622
620
|
isBase64: boolean = true,
|
|
623
|
-
signingAlgorithm: string = nrsaAliasMappingForNode[signatureAlgorithms.
|
|
621
|
+
signingAlgorithm: string = nrsaAliasMappingForNode[signatureAlgorithms.RSA_SHA256]
|
|
624
622
|
): string | Buffer {
|
|
625
623
|
try {
|
|
626
624
|
// 1. 标准化输入数据
|
|
@@ -701,7 +699,7 @@ const libSaml = () => {
|
|
|
701
699
|
const sourceEntitySetting = sourceEntity.entitySetting;
|
|
702
700
|
const targetEntityMetadata = targetEntity.entityMeta;
|
|
703
701
|
const { dom } = getContext();
|
|
704
|
-
const doc = dom.parseFromString(xml
|
|
702
|
+
const doc = dom.parseFromString(xml);
|
|
705
703
|
const assertions = select("//*[local-name(.)='Assertion']", doc) as Node[];
|
|
706
704
|
if (!Array.isArray(assertions) || assertions.length === 0) {
|
|
707
705
|
throw new Error('ERR_NO_ASSERTION');
|
|
@@ -734,8 +732,8 @@ const libSaml = () => {
|
|
|
734
732
|
return reject(new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION'));
|
|
735
733
|
}
|
|
736
734
|
const { encryptedAssertion: encAssertionPrefix } = sourceEntitySetting.tagPrefix;
|
|
737
|
-
const encryptAssertionDoc = dom.parseFromString(`<${encAssertionPrefix}:EncryptedAssertion xmlns:${encAssertionPrefix}="${namespace.names.assertion}">${res}</${encAssertionPrefix}:EncryptedAssertion
|
|
738
|
-
|
|
735
|
+
const encryptAssertionDoc = dom.parseFromString(`<${encAssertionPrefix}:EncryptedAssertion xmlns:${encAssertionPrefix}="${namespace.names.assertion}">${res}</${encAssertionPrefix}:EncryptedAssertion>`);
|
|
736
|
+
doc.documentElement.replaceChild(encryptAssertionDoc.documentElement, rawAssertionNode);
|
|
739
737
|
return resolve(utility.base64Encode(doc.toString()));
|
|
740
738
|
});
|
|
741
739
|
} else {
|
|
@@ -760,7 +758,7 @@ const libSaml = () => {
|
|
|
760
758
|
// Perform encryption depends on the setting of where the message is sent, default is false
|
|
761
759
|
const hereSetting = here.entitySetting;
|
|
762
760
|
const { dom } = getContext();
|
|
763
|
-
const doc = dom.parseFromString(entireXML
|
|
761
|
+
const doc = dom.parseFromString(entireXML);
|
|
764
762
|
const encryptedAssertions = select("/*[contains(local-name(), 'Response')]/*[local-name(.)='EncryptedAssertion']", doc) as Node[];
|
|
765
763
|
if (!Array.isArray(encryptedAssertions) || encryptedAssertions.length === 0) {
|
|
766
764
|
throw new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION');
|
|
@@ -779,8 +777,8 @@ const libSaml = () => {
|
|
|
779
777
|
if (!res) {
|
|
780
778
|
return reject(new Error('ERR_UNDEFINED_ENCRYPTED_ASSERTION'));
|
|
781
779
|
}
|
|
782
|
-
const rawAssertionDoc = dom.parseFromString(res
|
|
783
|
-
|
|
780
|
+
const rawAssertionDoc = dom.parseFromString(res);
|
|
781
|
+
doc.documentElement.replaceChild(rawAssertionDoc.documentElement, encAssertionNode);
|
|
784
782
|
return resolve([doc.toString(), res]);
|
|
785
783
|
});
|
|
786
784
|
});
|
package/types/src/api.d.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file entity-idp.ts
|
|
3
|
-
* @author tngan
|
|
4
|
-
* @desc Declares the actions taken by identity provider
|
|
5
|
-
*/
|
|
6
1
|
import Entity, { ESamlHttpRequest } from './entity.js';
|
|
7
2
|
import { ServiceProviderConstructor as ServiceProvider, IdentityProviderMetadata, IdentityProviderSettings } from './types.js';
|
|
8
3
|
import { FlowResult } from './flow.js';
|
|
@@ -18,20 +13,18 @@ export declare class IdentityProvider extends Entity {
|
|
|
18
13
|
entityMeta: IdentityProviderMetadata;
|
|
19
14
|
constructor(idpSetting: IdentityProviderSettings);
|
|
20
15
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
[key: string]: any;
|
|
34
|
-
}, customTagReplacement?: (template: string) => BindingContext, encryptThenSign?: boolean, relayState?: string): Promise<any>;
|
|
16
|
+
* @desc Generates the login response for developers to design their own method
|
|
17
|
+
* @param params
|
|
18
|
+
*/
|
|
19
|
+
createLoginResponse(params: {
|
|
20
|
+
sp: ServiceProvider;
|
|
21
|
+
requestInfo: Record<string, any>;
|
|
22
|
+
binding?: string;
|
|
23
|
+
user: Record<string, any>;
|
|
24
|
+
customTagReplacement?: (template: string) => BindingContext;
|
|
25
|
+
encryptThenSign?: boolean;
|
|
26
|
+
relayState?: string;
|
|
27
|
+
}): Promise<any>;
|
|
35
28
|
/**
|
|
36
29
|
* Validation of the parsed URL parameters
|
|
37
30
|
* @param sp ServiceProvider instance
|
package/types/src/libsaml.d.ts
CHANGED
|
@@ -147,7 +147,7 @@ declare const _default: {
|
|
|
147
147
|
* - The first element is `true` if the signature is valid, `false` otherwise.
|
|
148
148
|
* - The second element is the cryptographically authenticated assertion node as a string, or `null` if not found.
|
|
149
149
|
*/
|
|
150
|
-
verifySignature(xml: string, opts: SignatureVerifierOptions):
|
|
150
|
+
verifySignature(xml: string, opts: SignatureVerifierOptions): (string | boolean)[] | (boolean | null)[];
|
|
151
151
|
/**
|
|
152
152
|
* @desc Helper function to create the key section in metadata (abstraction for signing and encrypt use)
|
|
153
153
|
* @param {string} use type of certificate (e.g. signing, encrypt)
|
package/.idea/compiler.xml
DELETED
package/.idea/deployment.xml
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
|
|
4
|
-
<serverData>
|
|
5
|
-
<paths name="阿里云">
|
|
6
|
-
<serverdata>
|
|
7
|
-
<mappings>
|
|
8
|
-
<mapping local="$PROJECT_DIR$" web="/" />
|
|
9
|
-
</mappings>
|
|
10
|
-
</serverdata>
|
|
11
|
-
</paths>
|
|
12
|
-
</serverData>
|
|
13
|
-
</component>
|
|
14
|
-
</project>
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="AutoImportSettings">
|
|
4
|
-
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="bd9fb792-e752-426e-b2f5-6b9b9086ce24" name="更改" comment="" />
|
|
8
|
-
<option name="SHOW_DIALOG" value="false" />
|
|
9
|
-
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
10
|
-
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
11
|
-
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
12
|
-
</component>
|
|
13
|
-
<component name="ProjectColorInfo">{
|
|
14
|
-
"customColor": "",
|
|
15
|
-
"associatedIndex": 8
|
|
16
|
-
}</component>
|
|
17
|
-
<component name="ProjectId" id="2x1xvhQuH75Qdyg5ofvvmYeuJj5" />
|
|
18
|
-
<component name="ProjectViewState">
|
|
19
|
-
<option name="hideEmptyMiddlePackages" value="true" />
|
|
20
|
-
<option name="showExcludedFiles" value="false" />
|
|
21
|
-
<option name="showLibraryContents" value="true" />
|
|
22
|
-
</component>
|
|
23
|
-
<component name="PropertiesComponent">{
|
|
24
|
-
"keyToString": {
|
|
25
|
-
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
|
26
|
-
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
27
|
-
"ignore.virus.scanning.warn.message": "true",
|
|
28
|
-
"node.js.detected.package.eslint": "true",
|
|
29
|
-
"node.js.detected.package.tslint": "true",
|
|
30
|
-
"node.js.selected.package.eslint": "(autodetect)",
|
|
31
|
-
"node.js.selected.package.tslint": "(autodetect)",
|
|
32
|
-
"nodejs_package_manager_path": "npm",
|
|
33
|
-
"ts.external.directory.path": "D:\\software\\WebStorm 2022.3.3\\plugins\\javascript-plugin\\jsLanguageServicesImpl\\external",
|
|
34
|
-
"vue.rearranger.settings.migration": "true"
|
|
35
|
-
}
|
|
36
|
-
}</component>
|
|
37
|
-
<component name="SharedIndexes">
|
|
38
|
-
<attachedChunks>
|
|
39
|
-
<set>
|
|
40
|
-
<option value="bundled-js-predefined-d6986cc7102b-f27c65a3e318-JavaScript-WS-251.23774.424" />
|
|
41
|
-
</set>
|
|
42
|
-
</attachedChunks>
|
|
43
|
-
</component>
|
|
44
|
-
<component name="TaskManager">
|
|
45
|
-
<task active="true" id="Default" summary="默认任务">
|
|
46
|
-
<changelist id="bd9fb792-e752-426e-b2f5-6b9b9086ce24" name="更改" comment="" />
|
|
47
|
-
<created>1747119613080</created>
|
|
48
|
-
<option name="number" value="Default" />
|
|
49
|
-
<option name="presentableId" value="Default" />
|
|
50
|
-
<updated>1747119613080</updated>
|
|
51
|
-
<workItem from="1747119614232" duration="2805000" />
|
|
52
|
-
<workItem from="1747184324711" duration="10000" />
|
|
53
|
-
</task>
|
|
54
|
-
<servers />
|
|
55
|
-
</component>
|
|
56
|
-
<component name="TypeScriptGeneratedFilesManager">
|
|
57
|
-
<option name="version" value="3" />
|
|
58
|
-
</component>
|
|
59
|
-
<component name="XDebuggerManager">
|
|
60
|
-
<breakpoint-manager>
|
|
61
|
-
<breakpoints>
|
|
62
|
-
<line-breakpoint enabled="true" type="javascript">
|
|
63
|
-
<url>file://$PROJECT_DIR$/src/utility.js</url>
|
|
64
|
-
<line>21</line>
|
|
65
|
-
<option name="timeStamp" value="1" />
|
|
66
|
-
</line-breakpoint>
|
|
67
|
-
</breakpoints>
|
|
68
|
-
</breakpoint-manager>
|
|
69
|
-
</component>
|
|
70
|
-
</project>
|