@wazo/sdk 0.43.3 → 0.43.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wazo-sdk.js +2 -2
- package/esm/api/auth.js +5 -1
- package/esm/simple/Auth.js +6 -12
- package/esm/simple/__tests__/Auth.test.js +8 -64
- package/esm/types/api/auth.d.ts.map +1 -1
- package/esm/types/simple/Auth.d.ts.map +1 -1
- package/esm/types/utils/api-requester.d.ts.map +1 -1
- package/esm/utils/__tests__/api-requester.test.js +17 -0
- package/esm/utils/api-requester.js +9 -1
- package/lib/api/auth.js +5 -1
- package/lib/simple/Auth.js +6 -12
- package/lib/simple/__tests__/Auth.test.js +11 -64
- package/lib/types/api/auth.d.ts.map +1 -1
- package/lib/types/simple/Auth.d.ts.map +1 -1
- package/lib/types/utils/api-requester.d.ts.map +1 -1
- package/lib/utils/__tests__/api-requester.test.js +17 -0
- package/lib/utils/api-requester.js +9 -1
- package/package.json +1 -1
- package/src/api/auth.ts +13 -2
- package/src/simple/Auth.ts +6 -13
- package/src/simple/__tests__/Auth.test.ts +9 -87
- package/src/utils/__tests__/api-requester.test.ts +20 -0
- package/src/utils/api-requester.ts +9 -1
package/esm/api/auth.js
CHANGED
|
@@ -36,6 +36,10 @@ export default ((client, baseUrl) => ({
|
|
|
36
36
|
const body = {
|
|
37
37
|
saml_session_id: samlSessionId,
|
|
38
38
|
};
|
|
39
|
+
if (client.clientId) {
|
|
40
|
+
body.access_type = 'offline';
|
|
41
|
+
body.client_id = client.clientId;
|
|
42
|
+
}
|
|
39
43
|
return client.post(`${baseUrl}/token`, body).then(Session.parse);
|
|
40
44
|
},
|
|
41
45
|
initiateIdpAuthentication: async (domain, redirectUrl) => {
|
|
@@ -47,7 +51,7 @@ export default ((client, baseUrl) => ({
|
|
|
47
51
|
Accept: 'application/json',
|
|
48
52
|
'Content-Type': 'application/json',
|
|
49
53
|
};
|
|
50
|
-
return client.post(`${baseUrl}/saml/sso`, body, headers
|
|
54
|
+
return client.post(`${baseUrl}/saml/sso`, body, headers);
|
|
51
55
|
},
|
|
52
56
|
refreshToken: (refreshToken, backend, expiration, isMobile, tenantId, domainName) => {
|
|
53
57
|
const body = {
|
package/esm/simple/Auth.js
CHANGED
|
@@ -122,25 +122,19 @@ export class Auth {
|
|
|
122
122
|
return this._onAuthenticated(rawSession);
|
|
123
123
|
}
|
|
124
124
|
async initiateIdpAuthentication(domain, redirectUrl) {
|
|
125
|
-
let response;
|
|
126
125
|
try {
|
|
127
|
-
|
|
126
|
+
return await getApiClient().auth.initiateIdpAuthentication(domain, redirectUrl);
|
|
128
127
|
}
|
|
129
128
|
catch (e) {
|
|
130
|
-
logger.error('Error during IdP authentication
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (!response.ok) {
|
|
134
|
-
if (response.status === 404) {
|
|
135
|
-
throw new NoSamlRouteError('No route found for saml sso');
|
|
129
|
+
logger.error('Error during IdP authentication initialization:', e.message);
|
|
130
|
+
if (e.status === 404) {
|
|
131
|
+
throw new NoSamlRouteError('No route found for SAML SSO');
|
|
136
132
|
}
|
|
137
|
-
if (
|
|
133
|
+
if (e.status === 500) {
|
|
138
134
|
throw new SamlConfigError('SAML/server configuration error');
|
|
139
135
|
}
|
|
140
|
-
|
|
141
|
-
throw new Error(error.message || error.reason);
|
|
136
|
+
throw e;
|
|
142
137
|
}
|
|
143
|
-
return response.json();
|
|
144
138
|
}
|
|
145
139
|
async logInViaRefreshToken(refreshToken) {
|
|
146
140
|
const rawSession = await getApiClient().auth.refreshToken(refreshToken, '', this.expiration, this.mobile);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import BadResponse from '../../domain/BadResponse';
|
|
2
|
+
import ServerError from '../../domain/ServerError';
|
|
1
3
|
import getApiClient, { setRefreshToken } from '../../service/getApiClient';
|
|
2
4
|
import { Auth as AuthClass } from '../Auth';
|
|
3
5
|
const Auth = new AuthClass();
|
|
@@ -110,12 +112,8 @@ describe('simple/Auth', () => {
|
|
|
110
112
|
});
|
|
111
113
|
describe('initiateIdpAuthentication', () => {
|
|
112
114
|
const validResponse = { location: 'idp.com/auth', saml_session_id: 'a1b2C3d4' };
|
|
113
|
-
it('should return a `location` and `saml_session_id` if the response is
|
|
114
|
-
const initiateIdpAuthentication = jest.fn(() =>
|
|
115
|
-
ok: true,
|
|
116
|
-
status: 303,
|
|
117
|
-
json: () => Promise.resolve(validResponse),
|
|
118
|
-
}));
|
|
115
|
+
it('should return a `location` and `saml_session_id` if the response is valid', async () => {
|
|
116
|
+
const initiateIdpAuthentication = jest.fn(() => validResponse);
|
|
119
117
|
getApiClient.mockImplementation(() => ({
|
|
120
118
|
auth: {
|
|
121
119
|
initiateIdpAuthentication,
|
|
@@ -125,70 +123,16 @@ describe('simple/Auth', () => {
|
|
|
125
123
|
expect(response).toBe(validResponse);
|
|
126
124
|
});
|
|
127
125
|
it('should return a `NoSamlRouteError` if the response is a 404', async () => {
|
|
128
|
-
const initiateIdpAuthentication = jest.fn(() =>
|
|
129
|
-
ok: false,
|
|
130
|
-
status: 404,
|
|
131
|
-
}));
|
|
132
|
-
getApiClient.mockImplementation(() => ({
|
|
133
|
-
auth: {
|
|
134
|
-
initiateIdpAuthentication,
|
|
135
|
-
},
|
|
136
|
-
}));
|
|
137
|
-
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for saml sso');
|
|
138
|
-
});
|
|
139
|
-
it('should return an error `message` if the response is NOT ok', async () => {
|
|
140
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
141
|
-
ok: false,
|
|
142
|
-
json: () => Promise.resolve({ message: 'an error message', reason: 'an error reason' }),
|
|
143
|
-
}));
|
|
144
|
-
getApiClient.mockImplementation(() => ({
|
|
145
|
-
auth: {
|
|
146
|
-
initiateIdpAuthentication,
|
|
147
|
-
},
|
|
148
|
-
}));
|
|
149
|
-
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('an error message');
|
|
150
|
-
});
|
|
151
|
-
it('should return an error `reason` if there is no `message` and the response is NOT ok', async () => {
|
|
152
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
153
|
-
ok: false,
|
|
154
|
-
json: () => Promise.resolve({ reason: 'an error reason' }),
|
|
155
|
-
}));
|
|
126
|
+
const initiateIdpAuthentication = jest.fn(() => { throw BadResponse.fromText('an error message', 404); });
|
|
156
127
|
getApiClient.mockImplementation(() => ({
|
|
157
128
|
auth: {
|
|
158
129
|
initiateIdpAuthentication,
|
|
159
130
|
},
|
|
160
131
|
}));
|
|
161
|
-
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('
|
|
132
|
+
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for SAML SSO');
|
|
162
133
|
});
|
|
163
|
-
it('should return
|
|
164
|
-
const initiateIdpAuthentication = jest.fn(() =>
|
|
165
|
-
ok: false,
|
|
166
|
-
json: () => Promise.resolve({}),
|
|
167
|
-
}));
|
|
168
|
-
getApiClient.mockImplementation(() => ({
|
|
169
|
-
auth: {
|
|
170
|
-
initiateIdpAuthentication,
|
|
171
|
-
},
|
|
172
|
-
}));
|
|
173
|
-
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('');
|
|
174
|
-
});
|
|
175
|
-
it('should return a NoSAMLRouteError if the response is a 404', async () => {
|
|
176
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
177
|
-
ok: false,
|
|
178
|
-
status: 404,
|
|
179
|
-
}));
|
|
180
|
-
getApiClient.mockImplementation(() => ({
|
|
181
|
-
auth: {
|
|
182
|
-
initiateIdpAuthentication,
|
|
183
|
-
},
|
|
184
|
-
}));
|
|
185
|
-
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for saml sso');
|
|
186
|
-
});
|
|
187
|
-
it('should return a SamlConfigError if the response is a 500', async () => {
|
|
188
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
189
|
-
ok: false,
|
|
190
|
-
status: 500,
|
|
191
|
-
}));
|
|
134
|
+
it('should return a `SamlConfigError` if the response is a 500', async () => {
|
|
135
|
+
const initiateIdpAuthentication = jest.fn(() => { throw ServerError.fromText('an error message', 500); });
|
|
192
136
|
getApiClient.mockImplementation(() => ({
|
|
193
137
|
auth: {
|
|
194
138
|
initiateIdpAuthentication,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/api/auth.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvM,OAAO,OAAqB,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/api/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAqBxC,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AACjD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAClD,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAC7C,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAC/C,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAC9C,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAI7C,qBAAa,IAAI;IACf,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IAEnB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnE,2BAA2B,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAEnD,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnE,aAAa,EAAE,OAAO,CAAC;IAEvB,MAAM,EAAE,OAAO,CAAC;IAEhB,YAAY,EAAE,MAAM,CAAC;IAErB,YAAY,EAAE,MAAM,CAAC;IAErB,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAErC,oBAAoB,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;;IAU1D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IA6BnJ,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAItC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA6D1H,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAKzD,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-requester.d.ts","sourceRoot":"","sources":["../../../src/utils/api-requester.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAKF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAE9C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpC,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAElC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,oBAAoB,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEnD,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAErD,eAAe,EAAE,OAAO,CAAC;IAEzB,cAAc,EAAE,MAAM,CAAC;IAEvB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEnC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAElC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEnC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAElC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAErC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEtC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;IAIpE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIlD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIvD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"api-requester.d.ts","sourceRoot":"","sources":["../../../src/utils/api-requester.ts"],"names":[],"mappings":"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"}
|
|
@@ -147,3 +147,20 @@ describe('With a refresh token', () => {
|
|
|
147
147
|
});
|
|
148
148
|
});
|
|
149
149
|
});
|
|
150
|
+
describe('base64Encode', () => {
|
|
151
|
+
it('should encode a string using base64', () => {
|
|
152
|
+
const input = 'Hello World!';
|
|
153
|
+
const expectedOutput = 'SGVsbG8gV29ybGQh';
|
|
154
|
+
expect(ApiRequester.base64Encode(input)).toBe(expectedOutput);
|
|
155
|
+
});
|
|
156
|
+
it('should handle special characters', () => {
|
|
157
|
+
const input = 'éà$@€';
|
|
158
|
+
const expectedOutput = 'w6nDoCRA4oKs';
|
|
159
|
+
expect(ApiRequester.base64Encode(input)).toBe(expectedOutput);
|
|
160
|
+
});
|
|
161
|
+
it('should handle empty string', () => {
|
|
162
|
+
const input = '';
|
|
163
|
+
const expectedOutput = '';
|
|
164
|
+
expect(ApiRequester.base64Encode(input)).toBe(expectedOutput);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
@@ -32,7 +32,15 @@ export default class ApiRequester {
|
|
|
32
32
|
return Object.keys(obj).filter(key => obj[key]).map(key => `${key}=${encodeURIComponent(obj[key])}`).join('&');
|
|
33
33
|
}
|
|
34
34
|
static base64Encode(str) {
|
|
35
|
-
|
|
35
|
+
if (typeof btoa !== 'undefined') {
|
|
36
|
+
try {
|
|
37
|
+
return btoa(str);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
// fall back to Base64.encode if btoa fails
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return Base64.encode(str);
|
|
36
44
|
}
|
|
37
45
|
// @see https://github.com/facebook/flow/issues/183#issuecomment-358607052
|
|
38
46
|
constructor({ server, refreshTokenCallback, clientId, agent = null, token = null, fetchOptions, requestTimeout = REQUEST_TIMEOUT_MS, }) {
|
package/lib/api/auth.js
CHANGED
|
@@ -51,6 +51,10 @@ exports.default = ((client, baseUrl) => ({
|
|
|
51
51
|
const body = {
|
|
52
52
|
saml_session_id: samlSessionId,
|
|
53
53
|
};
|
|
54
|
+
if (client.clientId) {
|
|
55
|
+
body.access_type = 'offline';
|
|
56
|
+
body.client_id = client.clientId;
|
|
57
|
+
}
|
|
54
58
|
return client.post(`${baseUrl}/token`, body).then(Session_1.default.parse);
|
|
55
59
|
}),
|
|
56
60
|
initiateIdpAuthentication: (domain, redirectUrl) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -62,7 +66,7 @@ exports.default = ((client, baseUrl) => ({
|
|
|
62
66
|
Accept: 'application/json',
|
|
63
67
|
'Content-Type': 'application/json',
|
|
64
68
|
};
|
|
65
|
-
return client.post(`${baseUrl}/saml/sso`, body, headers
|
|
69
|
+
return client.post(`${baseUrl}/saml/sso`, body, headers);
|
|
66
70
|
}),
|
|
67
71
|
refreshToken: (refreshToken, backend, expiration, isMobile, tenantId, domainName) => {
|
|
68
72
|
const body = {
|
package/lib/simple/Auth.js
CHANGED
|
@@ -156,25 +156,19 @@ class Auth {
|
|
|
156
156
|
}
|
|
157
157
|
initiateIdpAuthentication(domain, redirectUrl) {
|
|
158
158
|
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
-
let response;
|
|
160
159
|
try {
|
|
161
|
-
|
|
160
|
+
return yield (0, getApiClient_1.default)().auth.initiateIdpAuthentication(domain, redirectUrl);
|
|
162
161
|
}
|
|
163
162
|
catch (e) {
|
|
164
|
-
logger.error('Error during IdP authentication
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (!response.ok) {
|
|
168
|
-
if (response.status === 404) {
|
|
169
|
-
throw new NoSamlRouteError('No route found for saml sso');
|
|
163
|
+
logger.error('Error during IdP authentication initialization:', e.message);
|
|
164
|
+
if (e.status === 404) {
|
|
165
|
+
throw new NoSamlRouteError('No route found for SAML SSO');
|
|
170
166
|
}
|
|
171
|
-
if (
|
|
167
|
+
if (e.status === 500) {
|
|
172
168
|
throw new SamlConfigError('SAML/server configuration error');
|
|
173
169
|
}
|
|
174
|
-
|
|
175
|
-
throw new Error(error.message || error.reason);
|
|
170
|
+
throw e;
|
|
176
171
|
}
|
|
177
|
-
return response.json();
|
|
178
172
|
});
|
|
179
173
|
}
|
|
180
174
|
logInViaRefreshToken(refreshToken) {
|
|
@@ -31,7 +31,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
34
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
const BadResponse_1 = __importDefault(require("../../domain/BadResponse"));
|
|
39
|
+
const ServerError_1 = __importDefault(require("../../domain/ServerError"));
|
|
35
40
|
const getApiClient_1 = __importStar(require("../../service/getApiClient"));
|
|
36
41
|
const Auth_1 = require("../Auth");
|
|
37
42
|
const Auth = new Auth_1.Auth();
|
|
@@ -144,12 +149,8 @@ describe('simple/Auth', () => {
|
|
|
144
149
|
});
|
|
145
150
|
describe('initiateIdpAuthentication', () => {
|
|
146
151
|
const validResponse = { location: 'idp.com/auth', saml_session_id: 'a1b2C3d4' };
|
|
147
|
-
it('should return a `location` and `saml_session_id` if the response is
|
|
148
|
-
const initiateIdpAuthentication = jest.fn(() =>
|
|
149
|
-
ok: true,
|
|
150
|
-
status: 303,
|
|
151
|
-
json: () => Promise.resolve(validResponse),
|
|
152
|
-
}));
|
|
152
|
+
it('should return a `location` and `saml_session_id` if the response is valid', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
153
|
+
const initiateIdpAuthentication = jest.fn(() => validResponse);
|
|
153
154
|
getApiClient_1.default.mockImplementation(() => ({
|
|
154
155
|
auth: {
|
|
155
156
|
initiateIdpAuthentication,
|
|
@@ -159,70 +160,16 @@ describe('simple/Auth', () => {
|
|
|
159
160
|
expect(response).toBe(validResponse);
|
|
160
161
|
}));
|
|
161
162
|
it('should return a `NoSamlRouteError` if the response is a 404', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
162
|
-
const initiateIdpAuthentication = jest.fn(() =>
|
|
163
|
-
ok: false,
|
|
164
|
-
status: 404,
|
|
165
|
-
}));
|
|
166
|
-
getApiClient_1.default.mockImplementation(() => ({
|
|
167
|
-
auth: {
|
|
168
|
-
initiateIdpAuthentication,
|
|
169
|
-
},
|
|
170
|
-
}));
|
|
171
|
-
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for saml sso');
|
|
172
|
-
}));
|
|
173
|
-
it('should return an error `message` if the response is NOT ok', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
174
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
175
|
-
ok: false,
|
|
176
|
-
json: () => Promise.resolve({ message: 'an error message', reason: 'an error reason' }),
|
|
177
|
-
}));
|
|
178
|
-
getApiClient_1.default.mockImplementation(() => ({
|
|
179
|
-
auth: {
|
|
180
|
-
initiateIdpAuthentication,
|
|
181
|
-
},
|
|
182
|
-
}));
|
|
183
|
-
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('an error message');
|
|
184
|
-
}));
|
|
185
|
-
it('should return an error `reason` if there is no `message` and the response is NOT ok', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
186
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
187
|
-
ok: false,
|
|
188
|
-
json: () => Promise.resolve({ reason: 'an error reason' }),
|
|
189
|
-
}));
|
|
190
|
-
getApiClient_1.default.mockImplementation(() => ({
|
|
191
|
-
auth: {
|
|
192
|
-
initiateIdpAuthentication,
|
|
193
|
-
},
|
|
194
|
-
}));
|
|
195
|
-
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('an error reason');
|
|
196
|
-
}));
|
|
197
|
-
it('should return an error with a null message if there is no `message` and `reason`', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
198
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
199
|
-
ok: false,
|
|
200
|
-
json: () => Promise.resolve({}),
|
|
201
|
-
}));
|
|
163
|
+
const initiateIdpAuthentication = jest.fn(() => { throw BadResponse_1.default.fromText('an error message', 404); });
|
|
202
164
|
getApiClient_1.default.mockImplementation(() => ({
|
|
203
165
|
auth: {
|
|
204
166
|
initiateIdpAuthentication,
|
|
205
167
|
},
|
|
206
168
|
}));
|
|
207
|
-
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('');
|
|
169
|
+
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for SAML SSO');
|
|
208
170
|
}));
|
|
209
|
-
it('should return a
|
|
210
|
-
const initiateIdpAuthentication = jest.fn(() =>
|
|
211
|
-
ok: false,
|
|
212
|
-
status: 404,
|
|
213
|
-
}));
|
|
214
|
-
getApiClient_1.default.mockImplementation(() => ({
|
|
215
|
-
auth: {
|
|
216
|
-
initiateIdpAuthentication,
|
|
217
|
-
},
|
|
218
|
-
}));
|
|
219
|
-
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for saml sso');
|
|
220
|
-
}));
|
|
221
|
-
it('should return a SamlConfigError if the response is a 500', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
222
|
-
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
223
|
-
ok: false,
|
|
224
|
-
status: 500,
|
|
225
|
-
}));
|
|
171
|
+
it('should return a `SamlConfigError` if the response is a 500', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
172
|
+
const initiateIdpAuthentication = jest.fn(() => { throw ServerError_1.default.fromText('an error message', 500); });
|
|
226
173
|
getApiClient_1.default.mockImplementation(() => ({
|
|
227
174
|
auth: {
|
|
228
175
|
initiateIdpAuthentication,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/api/auth.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvM,OAAO,OAAqB,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/api/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAqBxC,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AACjD,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAClD,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAC7C,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAC/C,qBAAa,gBAAiB,SAAQ,KAAK;CAAG;AAC9C,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAI7C,qBAAa,IAAI;IACf,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IAEnB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnE,2BAA2B,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAEnD,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnE,aAAa,EAAE,OAAO,CAAC;IAEvB,MAAM,EAAE,OAAO,CAAC;IAEhB,YAAY,EAAE,MAAM,CAAC;IAErB,YAAY,EAAE,MAAM,CAAC;IAErB,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAErC,oBAAoB,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;;IAU1D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IA6BnJ,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAItC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA6D1H,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAKzD,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/simple/Auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-requester.d.ts","sourceRoot":"","sources":["../../../src/utils/api-requester.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAKF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAE9C,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpC,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAElC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,oBAAoB,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEnD,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAErD,eAAe,EAAE,OAAO,CAAC;IAEzB,cAAc,EAAE,MAAM,CAAC;IAEvB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEnC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAElC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEnC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAElC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAErC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEtC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;IAIpE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIlD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIvD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"api-requester.d.ts","sourceRoot":"","sources":["../../../src/utils/api-requester.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,3 +161,20 @@ describe('With a refresh token', () => {
|
|
|
161
161
|
});
|
|
162
162
|
}));
|
|
163
163
|
});
|
|
164
|
+
describe('base64Encode', () => {
|
|
165
|
+
it('should encode a string using base64', () => {
|
|
166
|
+
const input = 'Hello World!';
|
|
167
|
+
const expectedOutput = 'SGVsbG8gV29ybGQh';
|
|
168
|
+
expect(api_requester_1.default.base64Encode(input)).toBe(expectedOutput);
|
|
169
|
+
});
|
|
170
|
+
it('should handle special characters', () => {
|
|
171
|
+
const input = 'éà$@€';
|
|
172
|
+
const expectedOutput = 'w6nDoCRA4oKs';
|
|
173
|
+
expect(api_requester_1.default.base64Encode(input)).toBe(expectedOutput);
|
|
174
|
+
});
|
|
175
|
+
it('should handle empty string', () => {
|
|
176
|
+
const input = '';
|
|
177
|
+
const expectedOutput = '';
|
|
178
|
+
expect(api_requester_1.default.base64Encode(input)).toBe(expectedOutput);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
@@ -30,7 +30,15 @@ class ApiRequester {
|
|
|
30
30
|
return Object.keys(obj).filter(key => obj[key]).map(key => `${key}=${encodeURIComponent(obj[key])}`).join('&');
|
|
31
31
|
}
|
|
32
32
|
static base64Encode(str) {
|
|
33
|
-
|
|
33
|
+
if (typeof btoa !== 'undefined') {
|
|
34
|
+
try {
|
|
35
|
+
return btoa(str);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
// fall back to Base64.encode if btoa fails
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return js_base64_1.Base64.encode(str);
|
|
34
42
|
}
|
|
35
43
|
// @see https://github.com/facebook/flow/issues/183#issuecomment-358607052
|
|
36
44
|
constructor({ server, refreshTokenCallback, clientId, agent = null, token = null, fetchOptions, requestTimeout = REQUEST_TIMEOUT_MS, }) {
|
package/package.json
CHANGED
package/src/api/auth.ts
CHANGED
|
@@ -16,6 +16,12 @@ type LoginParams = {
|
|
|
16
16
|
domainName?: string;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
+
type SamlLoginBody = {
|
|
20
|
+
saml_session_id: string,
|
|
21
|
+
access_type?: 'online' | 'offline';
|
|
22
|
+
client_id?: string;
|
|
23
|
+
};
|
|
24
|
+
|
|
19
25
|
type SendResetPasswordArgs = {
|
|
20
26
|
username?: string,
|
|
21
27
|
email?: string,
|
|
@@ -111,10 +117,15 @@ export default ((client: ApiRequester, baseUrl: string): AuthD => ({
|
|
|
111
117
|
|
|
112
118
|
logOut: (token: Token): Promise<LogoutResponse> => client.delete(`${baseUrl}/token/${token}`, null, {}, ApiRequester.successResponseParser),
|
|
113
119
|
samlLogIn: async (samlSessionId: string): Promise<Session | null | undefined> => {
|
|
114
|
-
const body = {
|
|
120
|
+
const body: SamlLoginBody = {
|
|
115
121
|
saml_session_id: samlSessionId,
|
|
116
122
|
};
|
|
117
123
|
|
|
124
|
+
if (client.clientId) {
|
|
125
|
+
body.access_type = 'offline';
|
|
126
|
+
body.client_id = client.clientId;
|
|
127
|
+
}
|
|
128
|
+
|
|
118
129
|
return client.post(`${baseUrl}/token`, body).then(Session.parse);
|
|
119
130
|
},
|
|
120
131
|
initiateIdpAuthentication: async (domain: string, redirectUrl: string) => {
|
|
@@ -128,7 +139,7 @@ export default ((client: ApiRequester, baseUrl: string): AuthD => ({
|
|
|
128
139
|
'Content-Type': 'application/json',
|
|
129
140
|
};
|
|
130
141
|
|
|
131
|
-
return client.post(`${baseUrl}/saml/sso`, body, headers
|
|
142
|
+
return client.post(`${baseUrl}/saml/sso`, body, headers);
|
|
132
143
|
},
|
|
133
144
|
refreshToken: (refreshToken: string, backend: string, expiration: number, isMobile?: boolean, tenantId?: string, domainName?: string): Promise<Session | null | undefined> => {
|
|
134
145
|
const body: Record<string, any> = {
|
package/src/simple/Auth.ts
CHANGED
|
@@ -168,28 +168,21 @@ export class Auth {
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
async initiateIdpAuthentication(domain: string, redirectUrl: string): Promise<{ location: string, saml_session_id: string } | undefined> {
|
|
171
|
-
let response;
|
|
172
171
|
try {
|
|
173
|
-
|
|
172
|
+
return await getApiClient().auth.initiateIdpAuthentication(domain, redirectUrl);
|
|
174
173
|
} catch (e: any) {
|
|
175
|
-
logger.error('Error during IdP authentication
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
174
|
+
logger.error('Error during IdP authentication initialization:', e.message);
|
|
178
175
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
throw new NoSamlRouteError('No route found for saml sso');
|
|
176
|
+
if (e.status === 404) {
|
|
177
|
+
throw new NoSamlRouteError('No route found for SAML SSO');
|
|
182
178
|
}
|
|
183
179
|
|
|
184
|
-
if (
|
|
180
|
+
if (e.status === 500) {
|
|
185
181
|
throw new SamlConfigError('SAML/server configuration error');
|
|
186
182
|
}
|
|
187
183
|
|
|
188
|
-
|
|
189
|
-
throw new Error(error.message || error.reason);
|
|
184
|
+
throw e;
|
|
190
185
|
}
|
|
191
|
-
|
|
192
|
-
return response.json();
|
|
193
186
|
}
|
|
194
187
|
|
|
195
188
|
async logInViaRefreshToken(refreshToken: string): Promise<Session | null> {
|