@boxyhq/saml-jackson 0.3.7-beta.731 → 0.3.7-beta.744

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.
@@ -14,7 +14,6 @@ export declare class OAuthController implements IOAuthController {
14
14
  });
15
15
  authorize(body: OAuthReqBody): Promise<{
16
16
  redirect_url: string;
17
- authorize_form: string;
18
17
  }>;
19
18
  samlResponse(body: SAMLResponsePayload): Promise<{
20
19
  redirect_url: string;
@@ -121,20 +121,7 @@ class OAuthController {
121
121
  if (!allowed.redirect(redirect_uri, samlConfig.redirectUrl)) {
122
122
  throw new error_1.JacksonError('Redirect URL is not allowed.', 403);
123
123
  }
124
- let ssoUrl;
125
- let post = false;
126
- const { sso } = samlConfig.idpMetadata;
127
- if ('redirectUrl' in sso) {
128
- // HTTP Redirect binding
129
- ssoUrl = sso.redirectUrl;
130
- }
131
- else if ('postUrl' in sso) {
132
- // HTTP-POST binding
133
- ssoUrl = sso.postUrl;
134
- post = true;
135
- }
136
124
  const samlReq = saml_1.default.request({
137
- ssoUrl,
138
125
  entityID: this.opts.samlAudience,
139
126
  callbackUrl: this.opts.externalUrl + this.opts.samlPath,
140
127
  signingKey: samlConfig.certs.privateKey,
@@ -148,24 +135,13 @@ class OAuthController {
148
135
  code_challenge,
149
136
  code_challenge_method,
150
137
  });
151
- const relayState = relayStatePrefix + sessionId;
152
- let redirectUrl;
153
- let authorizeForm;
154
- if (!post) {
155
- // HTTP Redirect binding
156
- redirectUrl = redirect.success(ssoUrl, {
157
- RelayState: relayState,
158
- SAMLRequest: Buffer.from(yield deflateRawAsync(samlReq.request)).toString('base64'),
159
- });
160
- }
161
- else {
162
- // HTTP POST binding
163
- authorizeForm = (0, utils_1.createAuthorizeForm)(relayState, encodeURI(Buffer.from(samlReq.request).toString('base64')), ssoUrl);
164
- }
165
- return {
166
- redirect_url: redirectUrl,
167
- authorize_form: authorizeForm,
168
- };
138
+ // deepak: When supporting HTTP-POST skip deflate
139
+ const samlReqEnc = yield deflateRawAsync(samlReq.request);
140
+ const redirectUrl = redirect.success(samlConfig.idpMetadata.sso.redirectUrl, {
141
+ RelayState: relayStatePrefix + sessionId,
142
+ SAMLRequest: Buffer.from(samlReqEnc).toString('base64'),
143
+ });
144
+ return { redirect_url: redirectUrl };
169
145
  });
170
146
  }
171
147
  samlResponse(body) {
@@ -2,4 +2,3 @@ export declare enum IndexNames {
2
2
  EntityID = "entityID",
3
3
  TenantProduct = "tenantProduct"
4
4
  }
5
- export declare const createAuthorizeForm: (relayState: string, samlReqEnc: string, postUrl: string) => string;
@@ -1,32 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAuthorizeForm = exports.IndexNames = void 0;
3
+ exports.IndexNames = void 0;
4
4
  var IndexNames;
5
5
  (function (IndexNames) {
6
6
  IndexNames["EntityID"] = "entityID";
7
7
  IndexNames["TenantProduct"] = "tenantProduct";
8
8
  })(IndexNames = exports.IndexNames || (exports.IndexNames = {}));
9
- const createAuthorizeForm = (relayState, samlReqEnc, postUrl) => {
10
- const formElements = [
11
- '<!DOCTYPE html>',
12
- '<html>',
13
- '<head>',
14
- '<meta charset="utf-8">',
15
- '<meta http-equiv="x-ua-compatible" content="ie=edge">',
16
- '</head>',
17
- '<body onload="document.forms[0].submit()">',
18
- '<noscript>',
19
- '<p>Note: Since your browser does not support JavaScript, you must press the Continue button once to proceed.</p>',
20
- '</noscript>',
21
- '<form method="post" action="' + encodeURI(postUrl) + '">',
22
- '<input type="hidden" name="RelayState" value="' + relayState + '"/>',
23
- '<input type="hidden" name="SAMLRequest" value="' + samlReqEnc + '"/>',
24
- '<input type="submit" value="Continue" />',
25
- '</form>',
26
- '<script>document.forms[0].style.display="none";</script>',
27
- '</body>',
28
- '</html>',
29
- ];
30
- return formElements.join('');
31
- };
32
- exports.createAuthorizeForm = createAuthorizeForm;
package/dist/saml/saml.js CHANGED
@@ -68,7 +68,7 @@ const request = ({ ssoUrl, entityID, callbackUrl, isPassive = false, forceAuthn
68
68
  '@ID': id,
69
69
  '@Version': '2.0',
70
70
  '@IssueInstant': date,
71
- '@ProtocolBinding': 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
71
+ '@ProtocolBinding': 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
72
72
  '@Destination': ssoUrl,
73
73
  'saml:Issuer': {
74
74
  '@xmlns:saml': 'urn:oasis:names:tc:SAML:2.0:assertion',
package/dist/typings.d.ts CHANGED
@@ -27,8 +27,7 @@ export interface IAPIController {
27
27
  }
28
28
  export interface IOAuthController {
29
29
  authorize(body: OAuthReqBody): Promise<{
30
- redirect_url?: string;
31
- authorize_form?: string;
30
+ redirect_url: string;
32
31
  }>;
33
32
  samlResponse(body: SAMLResponsePayload): Promise<{
34
33
  redirect_url: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boxyhq/saml-jackson",
3
- "version": "0.3.7-beta.731",
3
+ "version": "0.3.7-beta.744",
4
4
  "description": "SAML 2.0 service",
5
5
  "keywords": [
6
6
  "SAML 2.0"
@@ -40,6 +40,8 @@
40
40
  "@opentelemetry/api-metrics": "0.27.0",
41
41
  "@peculiar/webcrypto": "1.2.3",
42
42
  "@peculiar/x509": "1.6.1",
43
+ "cors": "2.8.5",
44
+ "express": "4.17.2",
43
45
  "mongodb": "4.3.1",
44
46
  "mysql2": "2.3.3",
45
47
  "pg": "8.7.3",
@@ -54,6 +56,7 @@
54
56
  "xmlbuilder": "15.1.1"
55
57
  },
56
58
  "devDependencies": {
59
+ "@types/express": "4.17.13",
57
60
  "@types/node": "17.0.17",
58
61
  "@types/sinon": "10.0.11",
59
62
  "@types/tap": "15.0.5",