samlesa 2.12.3 → 2.12.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.

Potentially problematic release.


This version of samlesa might be problematic. Click here for more details.

Files changed (60) hide show
  1. package/build/.idea/workspace.xml +13 -1
  2. package/build/index.js +54 -64
  3. package/build/index.js.map +1 -1
  4. package/build/src/api.js +24 -23
  5. package/build/src/api.js.map +1 -1
  6. package/build/src/binding-post.js +358 -368
  7. package/build/src/binding-post.js.map +1 -1
  8. package/build/src/binding-redirect.js +333 -332
  9. package/build/src/binding-redirect.js.map +1 -1
  10. package/build/src/binding-simplesign.js +222 -232
  11. package/build/src/binding-simplesign.js.map +1 -1
  12. package/build/src/entity-idp.js +130 -130
  13. package/build/src/entity-idp.js.map +1 -1
  14. package/build/src/entity-sp.js +96 -96
  15. package/build/src/entity-sp.js.map +1 -1
  16. package/build/src/entity.js +225 -235
  17. package/build/src/entity.js.map +1 -1
  18. package/build/src/extractor.js +385 -369
  19. package/build/src/extractor.js.map +1 -1
  20. package/build/src/flow.js +320 -319
  21. package/build/src/flow.js.map +1 -1
  22. package/build/src/libsaml.js +665 -641
  23. package/build/src/libsaml.js.map +1 -1
  24. package/build/src/metadata-idp.js +127 -127
  25. package/build/src/metadata-idp.js.map +1 -1
  26. package/build/src/metadata-sp.js +231 -231
  27. package/build/src/metadata-sp.js.map +1 -1
  28. package/build/src/metadata.js +166 -176
  29. package/build/src/metadata.js.map +1 -1
  30. package/build/src/types.js +11 -11
  31. package/build/src/urn.js +212 -212
  32. package/build/src/urn.js.map +1 -1
  33. package/build/src/utility.js +292 -248
  34. package/build/src/utility.js.map +1 -1
  35. package/build/src/validator.js +27 -26
  36. package/build/src/validator.js.map +1 -1
  37. package/package.json +8 -10
  38. package/src/api.ts +1 -1
  39. package/src/binding-redirect.ts +83 -64
  40. package/src/extractor.ts +23 -5
  41. package/src/libsaml.ts +95 -62
  42. package/src/utility.ts +147 -76
  43. package/types/index.d.ts +10 -10
  44. package/types/src/api.d.ts +13 -13
  45. package/types/src/binding-post.d.ts +46 -46
  46. package/types/src/binding-redirect.d.ts +52 -52
  47. package/types/src/binding-simplesign.d.ts +39 -39
  48. package/types/src/entity-idp.d.ts +42 -42
  49. package/types/src/entity-sp.d.ts +36 -36
  50. package/types/src/entity.d.ts +101 -99
  51. package/types/src/extractor.d.ts +25 -25
  52. package/types/src/flow.d.ts +6 -6
  53. package/types/src/libsaml.d.ts +200 -210
  54. package/types/src/metadata-idp.d.ts +24 -24
  55. package/types/src/metadata-sp.d.ts +36 -36
  56. package/types/src/metadata.d.ts +59 -57
  57. package/types/src/types.d.ts +129 -127
  58. package/types/src/urn.d.ts +194 -194
  59. package/types/src/utility.d.ts +134 -134
  60. package/types/src/validator.d.ts +3 -3
@@ -1,232 +1,232 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SpMetadata = void 0;
7
- exports.default = default_1;
8
- /**
9
- * @file metadata-sp.ts
10
- * @author tngan
11
- * @desc Metadata of service provider
12
- */
13
- const metadata_js_1 = __importDefault(require("./metadata.js"));
14
- const urn_js_1 = require("./urn.js");
15
- const libsaml_js_1 = __importDefault(require("./libsaml.js"));
16
- const utility_js_1 = require("./utility.js");
17
- const xml_1 = __importDefault(require("xml"));
18
- /*
19
- * @desc interface function
20
- */
21
- function default_1(meta) {
22
- return new SpMetadata(meta);
23
- }
24
- /**
25
- * @desc SP Metadata is for creating Service Provider, provides a set of API to manage the actions in SP.
26
- */
27
- class SpMetadata extends metadata_js_1.default {
28
- /**
29
- * @param {object/string} meta (either xml string or configuration in object)
30
- * @return {object} prototypes including public functions
31
- */
32
- constructor(meta) {
33
- const isFile = (0, utility_js_1.isString)(meta) || meta instanceof Buffer;
34
- // use object configuration instead of importing metadata file directly
35
- if (!isFile) {
36
- const { elementsOrder = urn_js_1.elementsOrder.default, entityID, signingCert, encryptCert, authnRequestsSigned = false, wantAssertionsSigned = false, wantMessageSigned = false, signatureConfig, nameIDFormat = [], singleLogoutService = [], assertionConsumerService = [], attributeConsumingService = [] } = meta;
37
- const descriptors = {
38
- KeyDescriptor: [],
39
- NameIDFormat: [],
40
- SingleLogoutService: [],
41
- AssertionConsumerService: [],
42
- AttributeConsumingService: [],
43
- };
44
- const SPSSODescriptor = [{
45
- _attr: {
46
- AuthnRequestsSigned: String(authnRequestsSigned),
47
- WantAssertionsSigned: String(wantAssertionsSigned),
48
- protocolSupportEnumeration: urn_js_1.namespace.names.protocol,
49
- },
50
- }];
51
- if (wantMessageSigned && signatureConfig === undefined) {
52
- console.warn('Construct service provider - missing signatureConfig');
53
- }
54
- for (const cert of (0, utility_js_1.castArrayOpt)(signingCert)) {
55
- descriptors.KeyDescriptor.push(libsaml_js_1.default.createKeySection('signing', cert).KeyDescriptor);
56
- }
57
- for (const cert of (0, utility_js_1.castArrayOpt)(encryptCert)) {
58
- descriptors.KeyDescriptor.push(libsaml_js_1.default.createKeySection('encryption', cert).KeyDescriptor);
59
- }
60
- if ((0, utility_js_1.isNonEmptyArray)(nameIDFormat)) {
61
- nameIDFormat.forEach(f => descriptors.NameIDFormat.push(f));
62
- }
63
- else {
64
- // default value
65
- descriptors.NameIDFormat.push(urn_js_1.namespace.format.emailAddress);
66
- }
67
- if ((0, utility_js_1.isNonEmptyArray)(singleLogoutService)) {
68
- singleLogoutService.forEach(a => {
69
- const attr = {
70
- Binding: a.Binding,
71
- Location: a.Location,
72
- };
73
- if (a.isDefault) {
74
- attr.isDefault = true;
75
- }
76
- descriptors.SingleLogoutService.push([{ _attr: attr }]);
77
- });
78
- }
79
- if ((0, utility_js_1.isNonEmptyArray)(assertionConsumerService)) {
80
- let indexCount = 0;
81
- assertionConsumerService.forEach(a => {
82
- const attr = {
83
- index: String(indexCount++),
84
- Binding: a.Binding,
85
- Location: a.Location,
86
- };
87
- if (a.isDefault) {
88
- attr.isDefault = true;
89
- }
90
- descriptors.AssertionConsumerService.push([{ _attr: attr }]);
91
- });
92
- }
93
- else {
94
- console.warn('Missing endpoint of AssertionConsumerService');
95
- }
96
- // 修改原有处理逻辑
97
- if ((0, utility_js_1.isNonEmptyArray)(attributeConsumingService)) {
98
- attributeConsumingService.forEach((service, index) => {
99
- // 1. 构建AttributeConsumingService主元素
100
- let indexCount = 0;
101
- let attrConsumingService = [{
102
- _attr: {
103
- index: String(index + 1),
104
- }
105
- }];
106
- if (service.isDefault) {
107
- attrConsumingService[0]._attr.isDefault = true;
108
- }
109
- // 2. 添加ServiceName子元素
110
- if ((0, utility_js_1.isNonEmptyArray)(service.serviceName)) {
111
- service.serviceName.forEach(({ value, lang }) => {
112
- attrConsumingService.push({
113
- ServiceName: [
114
- {
115
- _attr: lang ? { 'xml:lang': lang } : {},
116
- },
117
- value
118
- ]
119
- });
120
- });
121
- }
122
- if ((0, utility_js_1.isNonEmptyArray)(service.serviceDescription)) {
123
- service.serviceDescription.forEach(({ value, lang }) => {
124
- attrConsumingService.push({
125
- ServiceDescription: [
126
- {
127
- _attr: lang ? { 'xml:lang': lang } : {},
128
- },
129
- value
130
- ]
131
- });
132
- });
133
- }
134
- // 3. 添加RequestedAttribute子元素
135
- if ((0, utility_js_1.isNonEmptyArray)(service.requestedAttributes)) {
136
- service.requestedAttributes.forEach(attr => {
137
- const requestedAttr = {
138
- _attr: {
139
- ...(attr.isRequired && { isRequired: String(attr.isRequired) }),
140
- Name: attr.name,
141
- ...(attr.friendlyName && { FriendlyName: attr.friendlyName }),
142
- }
143
- };
144
- /* // 处理属性值白名单
145
- if (isNonEmptyArray(attr.attributeValue)) {
146
- requestedAttr[namespace.tags.attributeValue] = attr.attributeValue.map(val => ({
147
- _: val
148
- }));
149
- }*/
150
- attrConsumingService.push({
151
- RequestedAttribute: [requestedAttr]
152
- });
153
- });
154
- }
155
- // 4. 将完整元素加入描述符
156
- descriptors.AttributeConsumingService.push(attrConsumingService);
157
- });
158
- }
159
- // handle element order
160
- const existedElements = elementsOrder.filter(name => (0, utility_js_1.isNonEmptyArray)(descriptors[name]));
161
- existedElements.forEach(name => {
162
- descriptors[name].forEach(e => SPSSODescriptor.push({ [name]: e }));
163
- });
164
- // Re-assign the meta reference as a XML string|Buffer for use with the parent constructor
165
- meta = (0, xml_1.default)([{
166
- EntityDescriptor: [{
167
- _attr: {
168
- entityID,
169
- 'xmlns': urn_js_1.namespace.names.metadata,
170
- 'xmlns:assertion': urn_js_1.namespace.names.assertion,
171
- 'xmlns:ds': 'http://www.w3.org/2000/09/xmldsig#',
172
- },
173
- }, { SPSSODescriptor }],
174
- }]);
175
- }
176
- // Use the re-assigned meta object reference here
177
- super(meta, [
178
- {
179
- key: 'spSSODescriptor',
180
- localPath: ['EntityDescriptor', 'SPSSODescriptor'],
181
- attributes: ['WantAssertionsSigned', 'AuthnRequestsSigned'],
182
- },
183
- {
184
- key: 'assertionConsumerService',
185
- localPath: ['EntityDescriptor', 'SPSSODescriptor', 'AssertionConsumerService'],
186
- attributes: ['Binding', 'Location', 'isDefault', 'index'],
187
- }
188
- ]);
189
- }
190
- /**
191
- * @desc Get the preference whether it wants a signed assertion response
192
- * @return {boolean} Wantassertionssigned
193
- */
194
- isWantAssertionsSigned() {
195
- return this.meta.spSSODescriptor.wantAssertionsSigned === 'true';
196
- }
197
- /**
198
- * @desc Get the preference whether it signs request
199
- * @return {boolean} Authnrequestssigned
200
- */
201
- isAuthnRequestSigned() {
202
- return this.meta.spSSODescriptor.authnRequestsSigned === 'true';
203
- }
204
- /**
205
- * @desc Get the entity endpoint for assertion consumer service
206
- * @param {string} binding protocol binding (e.g. redirect, post)
207
- * @return {string/[string]} URL of endpoint(s)
208
- */
209
- getAssertionConsumerService(binding) {
210
- if ((0, utility_js_1.isString)(binding)) {
211
- let location;
212
- const bindName = urn_js_1.namespace.binding[binding];
213
- if ((0, utility_js_1.isNonEmptyArray)(this.meta.assertionConsumerService)) {
214
- this.meta.assertionConsumerService.forEach(obj => {
215
- if (obj.binding === bindName) {
216
- location = obj.location;
217
- return;
218
- }
219
- });
220
- }
221
- else {
222
- if (this.meta.assertionConsumerService.binding === bindName) {
223
- location = this.meta.assertionConsumerService.location;
224
- }
225
- }
226
- return location;
227
- }
228
- return this.meta.assertionConsumerService;
229
- }
230
- }
231
- exports.SpMetadata = SpMetadata;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SpMetadata = void 0;
7
+ /**
8
+ * @file metadata-sp.ts
9
+ * @author tngan
10
+ * @desc Metadata of service provider
11
+ */
12
+ const metadata_js_1 = __importDefault(require("./metadata.js"));
13
+ const urn_js_1 = require("./urn.js");
14
+ const libsaml_js_1 = __importDefault(require("./libsaml.js"));
15
+ const utility_js_1 = require("./utility.js");
16
+ const xml_1 = __importDefault(require("xml"));
17
+ /*
18
+ * @desc interface function
19
+ */
20
+ function default_1(meta) {
21
+ return new SpMetadata(meta);
22
+ }
23
+ exports.default = default_1;
24
+ /**
25
+ * @desc SP Metadata is for creating Service Provider, provides a set of API to manage the actions in SP.
26
+ */
27
+ class SpMetadata extends metadata_js_1.default {
28
+ /**
29
+ * @param {object/string} meta (either xml string or configuration in object)
30
+ * @return {object} prototypes including public functions
31
+ */
32
+ constructor(meta) {
33
+ const isFile = (0, utility_js_1.isString)(meta) || meta instanceof Buffer;
34
+ // use object configuration instead of importing metadata file directly
35
+ if (!isFile) {
36
+ const { elementsOrder = urn_js_1.elementsOrder.default, entityID, signingCert, encryptCert, authnRequestsSigned = false, wantAssertionsSigned = false, wantMessageSigned = false, signatureConfig, nameIDFormat = [], singleLogoutService = [], assertionConsumerService = [], attributeConsumingService = [] } = meta;
37
+ const descriptors = {
38
+ KeyDescriptor: [],
39
+ NameIDFormat: [],
40
+ SingleLogoutService: [],
41
+ AssertionConsumerService: [],
42
+ AttributeConsumingService: [],
43
+ };
44
+ const SPSSODescriptor = [{
45
+ _attr: {
46
+ AuthnRequestsSigned: String(authnRequestsSigned),
47
+ WantAssertionsSigned: String(wantAssertionsSigned),
48
+ protocolSupportEnumeration: urn_js_1.namespace.names.protocol,
49
+ },
50
+ }];
51
+ if (wantMessageSigned && signatureConfig === undefined) {
52
+ console.warn('Construct service provider - missing signatureConfig');
53
+ }
54
+ for (const cert of (0, utility_js_1.castArrayOpt)(signingCert)) {
55
+ descriptors.KeyDescriptor.push(libsaml_js_1.default.createKeySection('signing', cert).KeyDescriptor);
56
+ }
57
+ for (const cert of (0, utility_js_1.castArrayOpt)(encryptCert)) {
58
+ descriptors.KeyDescriptor.push(libsaml_js_1.default.createKeySection('encryption', cert).KeyDescriptor);
59
+ }
60
+ if ((0, utility_js_1.isNonEmptyArray)(nameIDFormat)) {
61
+ nameIDFormat.forEach(f => descriptors.NameIDFormat.push(f));
62
+ }
63
+ else {
64
+ // default value
65
+ descriptors.NameIDFormat.push(urn_js_1.namespace.format.emailAddress);
66
+ }
67
+ if ((0, utility_js_1.isNonEmptyArray)(singleLogoutService)) {
68
+ singleLogoutService.forEach(a => {
69
+ const attr = {
70
+ Binding: a.Binding,
71
+ Location: a.Location,
72
+ };
73
+ if (a.isDefault) {
74
+ attr.isDefault = true;
75
+ }
76
+ descriptors.SingleLogoutService.push([{ _attr: attr }]);
77
+ });
78
+ }
79
+ if ((0, utility_js_1.isNonEmptyArray)(assertionConsumerService)) {
80
+ let indexCount = 0;
81
+ assertionConsumerService.forEach(a => {
82
+ const attr = {
83
+ index: String(indexCount++),
84
+ Binding: a.Binding,
85
+ Location: a.Location,
86
+ };
87
+ if (a.isDefault) {
88
+ attr.isDefault = true;
89
+ }
90
+ descriptors.AssertionConsumerService.push([{ _attr: attr }]);
91
+ });
92
+ }
93
+ else {
94
+ console.warn('Missing endpoint of AssertionConsumerService');
95
+ }
96
+ // 修改原有处理逻辑
97
+ if ((0, utility_js_1.isNonEmptyArray)(attributeConsumingService)) {
98
+ attributeConsumingService.forEach((service, index) => {
99
+ // 1. 构建AttributeConsumingService主元素
100
+ let indexCount = 0;
101
+ let attrConsumingService = [{
102
+ _attr: {
103
+ index: String(index + 1),
104
+ }
105
+ }];
106
+ if (service.isDefault) {
107
+ attrConsumingService[0]._attr.isDefault = true;
108
+ }
109
+ // 2. 添加ServiceName子元素
110
+ if ((0, utility_js_1.isNonEmptyArray)(service.serviceName)) {
111
+ service.serviceName.forEach(({ value, lang }) => {
112
+ attrConsumingService.push({
113
+ ServiceName: [
114
+ {
115
+ _attr: lang ? { 'xml:lang': lang } : {},
116
+ },
117
+ value
118
+ ]
119
+ });
120
+ });
121
+ }
122
+ if ((0, utility_js_1.isNonEmptyArray)(service.serviceDescription)) {
123
+ service.serviceDescription.forEach(({ value, lang }) => {
124
+ attrConsumingService.push({
125
+ ServiceDescription: [
126
+ {
127
+ _attr: lang ? { 'xml:lang': lang } : {},
128
+ },
129
+ value
130
+ ]
131
+ });
132
+ });
133
+ }
134
+ // 3. 添加RequestedAttribute子元素
135
+ if ((0, utility_js_1.isNonEmptyArray)(service.requestedAttributes)) {
136
+ service.requestedAttributes.forEach(attr => {
137
+ const requestedAttr = {
138
+ _attr: {
139
+ ...(attr.isRequired && { isRequired: String(attr.isRequired) }),
140
+ Name: attr.name,
141
+ ...(attr.friendlyName && { FriendlyName: attr.friendlyName }),
142
+ }
143
+ };
144
+ /* // 处理属性值白名单
145
+ if (isNonEmptyArray(attr.attributeValue)) {
146
+ requestedAttr[namespace.tags.attributeValue] = attr.attributeValue.map(val => ({
147
+ _: val
148
+ }));
149
+ }*/
150
+ attrConsumingService.push({
151
+ RequestedAttribute: [requestedAttr]
152
+ });
153
+ });
154
+ }
155
+ // 4. 将完整元素加入描述符
156
+ descriptors.AttributeConsumingService.push(attrConsumingService);
157
+ });
158
+ }
159
+ // handle element order
160
+ const existedElements = elementsOrder.filter(name => (0, utility_js_1.isNonEmptyArray)(descriptors[name]));
161
+ existedElements.forEach(name => {
162
+ descriptors[name].forEach(e => SPSSODescriptor.push({ [name]: e }));
163
+ });
164
+ // Re-assign the meta reference as a XML string|Buffer for use with the parent constructor
165
+ meta = (0, xml_1.default)([{
166
+ EntityDescriptor: [{
167
+ _attr: {
168
+ entityID,
169
+ 'xmlns': urn_js_1.namespace.names.metadata,
170
+ 'xmlns:assertion': urn_js_1.namespace.names.assertion,
171
+ 'xmlns:ds': 'http://www.w3.org/2000/09/xmldsig#',
172
+ },
173
+ }, { SPSSODescriptor }],
174
+ }]);
175
+ }
176
+ // Use the re-assigned meta object reference here
177
+ super(meta, [
178
+ {
179
+ key: 'spSSODescriptor',
180
+ localPath: ['EntityDescriptor', 'SPSSODescriptor'],
181
+ attributes: ['WantAssertionsSigned', 'AuthnRequestsSigned'],
182
+ },
183
+ {
184
+ key: 'assertionConsumerService',
185
+ localPath: ['EntityDescriptor', 'SPSSODescriptor', 'AssertionConsumerService'],
186
+ attributes: ['Binding', 'Location', 'isDefault', 'index'],
187
+ }
188
+ ]);
189
+ }
190
+ /**
191
+ * @desc Get the preference whether it wants a signed assertion response
192
+ * @return {boolean} Wantassertionssigned
193
+ */
194
+ isWantAssertionsSigned() {
195
+ return this.meta.spSSODescriptor.wantAssertionsSigned === 'true';
196
+ }
197
+ /**
198
+ * @desc Get the preference whether it signs request
199
+ * @return {boolean} Authnrequestssigned
200
+ */
201
+ isAuthnRequestSigned() {
202
+ return this.meta.spSSODescriptor.authnRequestsSigned === 'true';
203
+ }
204
+ /**
205
+ * @desc Get the entity endpoint for assertion consumer service
206
+ * @param {string} binding protocol binding (e.g. redirect, post)
207
+ * @return {string/[string]} URL of endpoint(s)
208
+ */
209
+ getAssertionConsumerService(binding) {
210
+ if ((0, utility_js_1.isString)(binding)) {
211
+ let location;
212
+ const bindName = urn_js_1.namespace.binding[binding];
213
+ if ((0, utility_js_1.isNonEmptyArray)(this.meta.assertionConsumerService)) {
214
+ this.meta.assertionConsumerService.forEach(obj => {
215
+ if (obj.binding === bindName) {
216
+ location = obj.location;
217
+ return;
218
+ }
219
+ });
220
+ }
221
+ else {
222
+ if (this.meta.assertionConsumerService.binding === bindName) {
223
+ location = this.meta.assertionConsumerService.location;
224
+ }
225
+ }
226
+ return location;
227
+ }
228
+ return this.meta.assertionConsumerService;
229
+ }
230
+ }
231
+ exports.SpMetadata = SpMetadata;
232
232
  //# sourceMappingURL=metadata-sp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-sp.js","sourceRoot":"","sources":["../../src/metadata-sp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata-sp.js","sourceRoot":"","sources":["../../src/metadata-sp.ts"],"names":[],"mappings":"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"}