samlesa 2.13.0 → 2.14.1

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 (149) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +36 -65
  3. package/build/.idea/deployment.xml +14 -0
  4. package/{src → build}/.idea/modules.xml +1 -1
  5. package/build/.idea/workspace.xml +57 -0
  6. package/build/index.js +18 -54
  7. package/build/index.js.map +1 -1
  8. package/build/src/api.js +18 -24
  9. package/build/src/api.js.map +1 -1
  10. package/build/src/binding-post.js +337 -365
  11. package/build/src/binding-post.js.map +1 -1
  12. package/build/src/binding-redirect.js +312 -340
  13. package/build/src/binding-redirect.js.map +1 -1
  14. package/build/src/binding-simplesign.js +201 -229
  15. package/build/src/binding-simplesign.js.map +1 -1
  16. package/build/src/entity-idp.js +119 -127
  17. package/build/src/entity-idp.js.map +1 -1
  18. package/build/src/entity-sp.js +88 -96
  19. package/build/src/entity-sp.js.map +1 -1
  20. package/build/src/entity.js +193 -225
  21. package/build/src/entity.js.map +1 -1
  22. package/build/src/extractor.js +361 -369
  23. package/build/src/extractor.js.map +1 -1
  24. package/build/src/flow.js +313 -320
  25. package/build/src/flow.js.map +1 -1
  26. package/build/src/libsaml.js +693 -721
  27. package/build/src/libsaml.js.map +1 -1
  28. package/build/src/metadata-idp.js +119 -127
  29. package/build/src/metadata-idp.js.map +1 -1
  30. package/build/src/metadata-sp.js +223 -231
  31. package/build/src/metadata-sp.js.map +1 -1
  32. package/build/src/metadata.js +138 -166
  33. package/build/src/metadata.js.map +1 -1
  34. package/build/src/types.js +4 -11
  35. package/build/src/types.js.map +1 -1
  36. package/build/src/urn.js +204 -212
  37. package/build/src/urn.js.map +1 -1
  38. package/build/src/utility.js +277 -292
  39. package/build/src/utility.js.map +1 -1
  40. package/build/src/validator.js +24 -27
  41. package/build/src/validator.js.map +1 -1
  42. package/package.json +19 -14
  43. package/types/api.d.ts +15 -0
  44. package/types/api.d.ts.map +1 -0
  45. package/types/binding-post.d.ts +48 -0
  46. package/types/binding-post.d.ts.map +1 -0
  47. package/types/binding-redirect.d.ts +54 -0
  48. package/types/binding-redirect.d.ts.map +1 -0
  49. package/types/binding-simplesign.d.ts +41 -0
  50. package/types/binding-simplesign.d.ts.map +1 -0
  51. package/types/entity-idp.d.ts +38 -0
  52. package/types/entity-idp.d.ts.map +1 -0
  53. package/types/entity-sp.d.ts +38 -0
  54. package/types/entity-sp.d.ts.map +1 -0
  55. package/types/entity.d.ts +100 -0
  56. package/types/entity.d.ts.map +1 -0
  57. package/types/extractor.d.ts +26 -0
  58. package/types/extractor.d.ts.map +1 -0
  59. package/types/flow.d.ts +7 -0
  60. package/types/flow.d.ts.map +1 -0
  61. package/types/index.d.ts +11 -10
  62. package/types/index.d.ts.map +1 -0
  63. package/types/libsaml.d.ts +208 -0
  64. package/types/libsaml.d.ts.map +1 -0
  65. package/types/metadata-idp.d.ts +25 -0
  66. package/types/metadata-idp.d.ts.map +1 -0
  67. package/types/metadata-sp.d.ts +37 -0
  68. package/types/metadata-sp.d.ts.map +1 -0
  69. package/types/metadata.d.ts +58 -0
  70. package/types/metadata.d.ts.map +1 -0
  71. package/types/src/api.d.ts +15 -13
  72. package/types/src/api.d.ts.map +1 -0
  73. package/types/src/binding-post.d.ts +48 -47
  74. package/types/src/binding-post.d.ts.map +1 -0
  75. package/types/src/binding-redirect.d.ts +54 -53
  76. package/types/src/binding-redirect.d.ts.map +1 -0
  77. package/types/src/binding-simplesign.d.ts +41 -40
  78. package/types/src/binding-simplesign.d.ts.map +1 -0
  79. package/types/src/entity-idp.d.ts +38 -37
  80. package/types/src/entity-idp.d.ts.map +1 -0
  81. package/types/src/entity-sp.d.ts +38 -36
  82. package/types/src/entity-sp.d.ts.map +1 -0
  83. package/types/src/entity.d.ts +100 -101
  84. package/types/src/entity.d.ts.map +1 -0
  85. package/types/src/extractor.d.ts +26 -25
  86. package/types/src/extractor.d.ts.map +1 -0
  87. package/types/src/flow.d.ts +7 -6
  88. package/types/src/flow.d.ts.map +1 -0
  89. package/types/src/libsaml.d.ts +208 -209
  90. package/types/src/libsaml.d.ts.map +1 -0
  91. package/types/src/metadata-idp.d.ts +25 -24
  92. package/types/src/metadata-idp.d.ts.map +1 -0
  93. package/types/src/metadata-sp.d.ts +37 -36
  94. package/types/src/metadata-sp.d.ts.map +1 -0
  95. package/types/src/metadata.d.ts +58 -59
  96. package/types/src/metadata.d.ts.map +1 -0
  97. package/types/src/types.d.ts +128 -129
  98. package/types/src/types.d.ts.map +1 -0
  99. package/types/src/urn.d.ts +195 -194
  100. package/types/src/urn.d.ts.map +1 -0
  101. package/types/src/utility.d.ts +133 -134
  102. package/types/src/utility.d.ts.map +1 -0
  103. package/types/src/validator.d.ts +4 -3
  104. package/types/src/validator.d.ts.map +1 -0
  105. package/types/types.d.ts +128 -0
  106. package/types/types.d.ts.map +1 -0
  107. package/types/urn.d.ts +195 -0
  108. package/types/urn.d.ts.map +1 -0
  109. package/types/utility.d.ts +133 -0
  110. package/types/utility.d.ts.map +1 -0
  111. package/types/validator.d.ts +4 -0
  112. package/types/validator.d.ts.map +1 -0
  113. package/.editorconfig +0 -19
  114. package/.github/FUNDING.yml +0 -1
  115. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  116. package/.idea/modules.xml +0 -8
  117. package/.idea/vcs.xml +0 -6
  118. package/.pre-commit.sh +0 -15
  119. package/.snyk +0 -8
  120. package/.travis.yml +0 -29
  121. package/Makefile +0 -25
  122. package/index.d.ts +0 -10
  123. package/index.js +0 -19
  124. package/index.js.map +0 -1
  125. package/index.ts +0 -28
  126. package/qodana.yaml +0 -29
  127. package/src/.idea/src.iml +0 -12
  128. package/src/.idea/vcs.xml +0 -6
  129. package/src/api.ts +0 -36
  130. package/src/binding-post.ts +0 -348
  131. package/src/binding-redirect.ts +0 -356
  132. package/src/binding-simplesign.ts +0 -238
  133. package/src/entity-idp.ts +0 -153
  134. package/src/entity-sp.ts +0 -114
  135. package/src/entity.ts +0 -243
  136. package/src/extractor.ts +0 -392
  137. package/src/flow.ts +0 -467
  138. package/src/libsaml.ts +0 -895
  139. package/src/metadata-idp.ts +0 -146
  140. package/src/metadata-sp.ts +0 -268
  141. package/src/metadata.ts +0 -166
  142. package/src/types.ts +0 -153
  143. package/src/urn.ts +0 -211
  144. package/src/utility.ts +0 -319
  145. package/src/validator.ts +0 -39
  146. package/tsconfig.json +0 -38
  147. package/tslint.json +0 -35
  148. package/types.d.ts +0 -2
  149. /package/{.idea/samlify.iml → build/.idea/build.iml} +0 -0
@@ -1,226 +1,194 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- /**
30
- * @file entity.ts
31
- * @author tngan
32
- * @desc An abstraction for identity provider and service provider.
33
- */
34
- const utility_js_1 = require("./utility.js");
35
- const urn_js_1 = require("./urn.js");
36
- const uuid = __importStar(require("uuid"));
37
- const metadata_idp_js_1 = __importDefault(require("./metadata-idp.js"));
38
- const metadata_sp_js_1 = __importDefault(require("./metadata-sp.js"));
39
- const binding_redirect_js_1 = __importDefault(require("./binding-redirect.js"));
40
- const binding_post_js_1 = __importDefault(require("./binding-post.js"));
41
- const flow_js_1 = require("./flow.js");
42
- const dataEncryptionAlgorithm = urn_js_1.algorithms.encryption.data;
43
- const keyEncryptionAlgorithm = urn_js_1.algorithms.encryption.key;
44
- const signatureAlgorithms = urn_js_1.algorithms.signature;
45
- const messageSigningOrders = urn_js_1.messageConfigurations.signingOrder;
46
- const defaultEntitySetting = {
47
- wantLogoutResponseSigned: false,
48
- messageSigningOrder: messageSigningOrders.SIGN_THEN_ENCRYPT,
49
- wantLogoutRequestSigned: false,
50
- allowCreate: false,
51
- isAssertionEncrypted: false,
52
- requestSignatureAlgorithm: signatureAlgorithms.RSA_SHA512,
53
- dataEncryptionAlgorithm: dataEncryptionAlgorithm.AES_256_GCM,
54
- keyEncryptionAlgorithm: keyEncryptionAlgorithm.RSA_OAEP_MGF1P,
55
- generateID: () => ('_' + uuid.v4()),
56
- relayState: '',
57
- };
58
- class Entity {
59
- entitySetting;
60
- entityType;
61
- entityMeta;
62
- /**
63
- * @param entitySetting
64
- * @param entityMeta is the entity metadata, deprecated after 2.0
65
- */
66
- constructor(entitySetting, entityType) {
67
- this.entitySetting = Object.assign({}, defaultEntitySetting, entitySetting);
68
- const metadata = entitySetting.metadata || entitySetting;
69
- switch (entityType) {
70
- case 'idp':
71
- this.entityMeta = (0, metadata_idp_js_1.default)(metadata);
72
- // setting with metadata has higher precedence
73
- this.entitySetting.wantAuthnRequestsSigned = this.entityMeta.isWantAuthnRequestsSigned();
74
- this.entitySetting.nameIDFormat = this.entityMeta.getNameIDFormat() || this.entitySetting.nameIDFormat;
75
- break;
76
- case 'sp':
77
- this.entityMeta = (0, metadata_sp_js_1.default)(metadata);
78
- // setting with metadata has higher precedence
79
- this.entitySetting.authnRequestsSigned = this.entityMeta.isAuthnRequestSigned();
80
- this.entitySetting.wantAssertionsSigned = this.entityMeta.isWantAssertionsSigned();
81
- this.entitySetting.nameIDFormat = this.entityMeta.getNameIDFormat() || this.entitySetting.nameIDFormat;
82
- break;
83
- default:
84
- throw new Error('ERR_UNDEFINED_ENTITY_TYPE');
85
- }
86
- }
87
- /**
88
- * @desc Returns the setting of entity
89
- * @return {object}
90
- */
91
- getEntitySetting() {
92
- return this.entitySetting;
93
- }
94
- /**
95
- * @desc Returns the xml string of entity metadata
96
- * @return {string}
97
- */
98
- getMetadata() {
99
- return this.entityMeta.getMetadata();
100
- }
101
- /**
102
- * @desc Exports the entity metadata into specified folder
103
- * @param {string} exportFile indicates the file name
104
- */
105
- exportMetadata(exportFile) {
106
- return this.entityMeta.exportMetadata(exportFile);
107
- }
108
- /** * @desc Verify fields with the one specified in metadata
109
- * @param {string/[string]} field is a string or an array of string indicating the field value in SAML message
110
- * @param {string} metaField is a string indicating the same field specified in metadata
111
- * @return {boolean} True/False
112
- */
113
- verifyFields(field, metaField) {
114
- if ((0, utility_js_1.isString)(field)) {
115
- return field === metaField;
116
- }
117
- if ((0, utility_js_1.isNonEmptyArray)(field)) {
118
- let res = true;
119
- field.forEach(f => {
120
- if (f !== metaField) {
121
- res = false;
122
- return;
123
- }
124
- });
125
- return res;
126
- }
127
- return false;
128
- }
129
- /** @desc Generates the logout request for developers to design their own method
130
- * @param {ServiceProvider} sp object of service provider
131
- * @param {string} binding protocol binding
132
- * @param {object} user current logged user (e.g. user)
133
- * @param {string} relayState the URL to which to redirect the user when logout is complete
134
- * @param {function} customTagReplacement used when developers have their own login response template
135
- */
136
- createLogoutRequest(targetEntity, binding, user, relayState = '', customTagReplacement) {
137
- if (binding === urn_js_1.wording.binding.redirect) {
138
- return binding_redirect_js_1.default.logoutRequestRedirectURL(user, {
139
- init: this,
140
- target: targetEntity,
141
- }, relayState, customTagReplacement);
142
- }
143
- if (binding === urn_js_1.wording.binding.post) {
144
- const entityEndpoint = targetEntity.entityMeta.getSingleLogoutService(binding);
145
- const context = binding_post_js_1.default.base64LogoutRequest(user, "/*[local-name(.)='LogoutRequest']", { init: this, target: targetEntity }, customTagReplacement);
146
- return {
147
- ...context,
148
- relayState,
149
- entityEndpoint,
150
- type: 'SAMLRequest',
151
- };
152
- }
153
- // Will support artifact in the next release
154
- throw new Error('ERR_UNDEFINED_BINDING');
155
- }
156
- /**
157
- * @desc Generates the logout response for developers to design their own method
158
- * @param {IdentityProvider} idp object of identity provider
159
- * @param {object} requestInfo corresponding request, used to obtain the id
160
- * @param {string} relayState the URL to which to redirect the user when logout is complete.
161
- * @param {string} binding protocol binding
162
- * @param {function} customTagReplacement used when developers have their own login response template
163
- */
164
- createLogoutResponse(target, requestInfo, binding, relayState = '', customTagReplacement) {
165
- const protocol = urn_js_1.namespace.binding[binding];
166
- if (protocol === urn_js_1.namespace.binding.redirect) {
167
- return binding_redirect_js_1.default.logoutResponseRedirectURL(requestInfo, {
168
- init: this,
169
- target,
170
- }, relayState, customTagReplacement);
171
- }
172
- if (protocol === urn_js_1.namespace.binding.post) {
173
- const context = binding_post_js_1.default.base64LogoutResponse(requestInfo, {
174
- init: this,
175
- target,
176
- }, customTagReplacement);
177
- return {
178
- ...context,
179
- relayState,
180
- entityEndpoint: target.entityMeta.getSingleLogoutService(binding),
181
- type: 'SAMLResponse',
182
- };
183
- }
184
- throw new Error('ERR_CREATE_LOGOUT_RESPONSE_UNDEFINED_BINDING');
185
- }
186
- /**
187
- * @desc Validation of the parsed the URL parameters
188
- * @param {IdentityProvider} idp object of identity provider
189
- * @param {string} binding protocol binding
190
- * @param {request} req request
191
- * @return {Promise}
192
- */
193
- parseLogoutRequest(from, binding, request) {
194
- const self = this;
195
- return (0, flow_js_1.flow)({
196
- from: from,
197
- self: self,
198
- type: 'logout',
199
- parserType: 'LogoutRequest',
200
- checkSignature: this.entitySetting.wantLogoutRequestSigned,
201
- binding: binding,
202
- request: request,
203
- });
204
- }
205
- /**
206
- * @desc Validation of the parsed the URL parameters
207
- * @param {object} config config for the parser
208
- * @param {string} binding protocol binding
209
- * @param {request} req request
210
- * @return {Promise}
211
- */
212
- parseLogoutResponse(from, binding, request) {
213
- const self = this;
214
- return (0, flow_js_1.flow)({
215
- from: from,
216
- self: self,
217
- type: 'logout',
218
- parserType: 'LogoutResponse',
219
- checkSignature: self.entitySetting.wantLogoutResponseSigned,
220
- binding: binding,
221
- request: request
222
- });
223
- }
224
- }
225
- exports.default = Entity;
1
+ /**
2
+ * @file entity.ts
3
+ * @author tngan
4
+ * @desc An abstraction for identity provider and service provider.
5
+ */
6
+ import { isString, isNonEmptyArray } from './utility.js';
7
+ import { namespace, wording, algorithms, messageConfigurations } from './urn.js';
8
+ import * as uuid from 'uuid';
9
+ import IdpMetadata from './metadata-idp.js';
10
+ import SpMetadata from './metadata-sp.js';
11
+ import redirectBinding from './binding-redirect.js';
12
+ import postBinding from './binding-post.js';
13
+ import { flow } from './flow.js';
14
+ const dataEncryptionAlgorithm = algorithms.encryption.data;
15
+ const keyEncryptionAlgorithm = algorithms.encryption.key;
16
+ const signatureAlgorithms = algorithms.signature;
17
+ const messageSigningOrders = messageConfigurations.signingOrder;
18
+ const defaultEntitySetting = {
19
+ wantLogoutResponseSigned: false,
20
+ messageSigningOrder: messageSigningOrders.SIGN_THEN_ENCRYPT,
21
+ wantLogoutRequestSigned: false,
22
+ allowCreate: false,
23
+ isAssertionEncrypted: false,
24
+ requestSignatureAlgorithm: signatureAlgorithms.RSA_SHA512,
25
+ dataEncryptionAlgorithm: dataEncryptionAlgorithm.AES_256_GCM,
26
+ keyEncryptionAlgorithm: keyEncryptionAlgorithm.RSA_OAEP_MGF1P,
27
+ generateID: () => ('_' + uuid.v4()),
28
+ relayState: '',
29
+ };
30
+ export default class Entity {
31
+ /**
32
+ * @param entitySetting
33
+ * @param entityMeta is the entity metadata, deprecated after 2.0
34
+ */
35
+ constructor(entitySetting, entityType) {
36
+ this.entitySetting = Object.assign({}, defaultEntitySetting, entitySetting);
37
+ const metadata = entitySetting.metadata || entitySetting;
38
+ switch (entityType) {
39
+ case 'idp':
40
+ this.entityMeta = IdpMetadata(metadata);
41
+ // setting with metadata has higher precedence
42
+ this.entitySetting.wantAuthnRequestsSigned = this.entityMeta.isWantAuthnRequestsSigned();
43
+ this.entitySetting.nameIDFormat = this.entityMeta.getNameIDFormat() || this.entitySetting.nameIDFormat;
44
+ break;
45
+ case 'sp':
46
+ this.entityMeta = SpMetadata(metadata);
47
+ // setting with metadata has higher precedence
48
+ this.entitySetting.authnRequestsSigned = this.entityMeta.isAuthnRequestSigned();
49
+ this.entitySetting.wantAssertionsSigned = this.entityMeta.isWantAssertionsSigned();
50
+ this.entitySetting.nameIDFormat = this.entityMeta.getNameIDFormat() || this.entitySetting.nameIDFormat;
51
+ break;
52
+ default:
53
+ throw new Error('ERR_UNDEFINED_ENTITY_TYPE');
54
+ }
55
+ }
56
+ /**
57
+ * @desc Returns the setting of entity
58
+ * @return {object}
59
+ */
60
+ getEntitySetting() {
61
+ return this.entitySetting;
62
+ }
63
+ /**
64
+ * @desc Returns the xml string of entity metadata
65
+ * @return {string}
66
+ */
67
+ getMetadata() {
68
+ return this.entityMeta.getMetadata();
69
+ }
70
+ /**
71
+ * @desc Exports the entity metadata into specified folder
72
+ * @param {string} exportFile indicates the file name
73
+ */
74
+ exportMetadata(exportFile) {
75
+ return this.entityMeta.exportMetadata(exportFile);
76
+ }
77
+ /** * @desc Verify fields with the one specified in metadata
78
+ * @param {string/[string]} field is a string or an array of string indicating the field value in SAML message
79
+ * @param {string} metaField is a string indicating the same field specified in metadata
80
+ * @return {boolean} True/False
81
+ */
82
+ verifyFields(field, metaField) {
83
+ if (isString(field)) {
84
+ return field === metaField;
85
+ }
86
+ if (isNonEmptyArray(field)) {
87
+ let res = true;
88
+ field.forEach(f => {
89
+ if (f !== metaField) {
90
+ res = false;
91
+ return;
92
+ }
93
+ });
94
+ return res;
95
+ }
96
+ return false;
97
+ }
98
+ /** @desc Generates the logout request for developers to design their own method
99
+ * @param {ServiceProvider} sp object of service provider
100
+ * @param {string} binding protocol binding
101
+ * @param {object} user current logged user (e.g. user)
102
+ * @param {string} relayState the URL to which to redirect the user when logout is complete
103
+ * @param {function} customTagReplacement used when developers have their own login response template
104
+ */
105
+ createLogoutRequest(targetEntity, binding, user, relayState = '', customTagReplacement) {
106
+ if (binding === wording.binding.redirect) {
107
+ return redirectBinding.logoutRequestRedirectURL(user, {
108
+ init: this,
109
+ target: targetEntity,
110
+ }, relayState, customTagReplacement);
111
+ }
112
+ if (binding === wording.binding.post) {
113
+ const entityEndpoint = targetEntity.entityMeta.getSingleLogoutService(binding);
114
+ const context = postBinding.base64LogoutRequest(user, "/*[local-name(.)='LogoutRequest']", { init: this, target: targetEntity }, customTagReplacement);
115
+ return {
116
+ ...context,
117
+ relayState,
118
+ entityEndpoint,
119
+ type: 'SAMLRequest',
120
+ };
121
+ }
122
+ // Will support artifact in the next release
123
+ throw new Error('ERR_UNDEFINED_BINDING');
124
+ }
125
+ /**
126
+ * @desc Generates the logout response for developers to design their own method
127
+ * @param {IdentityProvider} idp object of identity provider
128
+ * @param {object} requestInfo corresponding request, used to obtain the id
129
+ * @param {string} relayState the URL to which to redirect the user when logout is complete.
130
+ * @param {string} binding protocol binding
131
+ * @param {function} customTagReplacement used when developers have their own login response template
132
+ */
133
+ createLogoutResponse(target, requestInfo, binding, relayState = '', customTagReplacement) {
134
+ const protocol = namespace.binding[binding];
135
+ if (protocol === namespace.binding.redirect) {
136
+ return redirectBinding.logoutResponseRedirectURL(requestInfo, {
137
+ init: this,
138
+ target,
139
+ }, relayState, customTagReplacement);
140
+ }
141
+ if (protocol === namespace.binding.post) {
142
+ const context = postBinding.base64LogoutResponse(requestInfo, {
143
+ init: this,
144
+ target,
145
+ }, customTagReplacement);
146
+ return {
147
+ ...context,
148
+ relayState,
149
+ entityEndpoint: target.entityMeta.getSingleLogoutService(binding),
150
+ type: 'SAMLResponse',
151
+ };
152
+ }
153
+ throw new Error('ERR_CREATE_LOGOUT_RESPONSE_UNDEFINED_BINDING');
154
+ }
155
+ /**
156
+ * @desc Validation of the parsed the URL parameters
157
+ * @param {IdentityProvider} idp object of identity provider
158
+ * @param {string} binding protocol binding
159
+ * @param {request} req request
160
+ * @return {Promise}
161
+ */
162
+ parseLogoutRequest(from, binding, request) {
163
+ const self = this;
164
+ return flow({
165
+ from: from,
166
+ self: self,
167
+ type: 'logout',
168
+ parserType: 'LogoutRequest',
169
+ checkSignature: this.entitySetting.wantLogoutRequestSigned,
170
+ binding: binding,
171
+ request: request,
172
+ });
173
+ }
174
+ /**
175
+ * @desc Validation of the parsed the URL parameters
176
+ * @param {object} config config for the parser
177
+ * @param {string} binding protocol binding
178
+ * @param {request} req request
179
+ * @return {Promise}
180
+ */
181
+ parseLogoutResponse(from, binding, request) {
182
+ const self = this;
183
+ return flow({
184
+ from: from,
185
+ self: self,
186
+ type: 'logout',
187
+ parserType: 'LogoutResponse',
188
+ checkSignature: self.entitySetting.wantLogoutResponseSigned,
189
+ binding: binding,
190
+ request: request
191
+ });
192
+ }
193
+ }
226
194
  //# sourceMappingURL=entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/entity.ts"],"names":[],"mappings":"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"}