@wazo/sdk 0.43.2 → 0.43.4
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/README.md +18 -1
- package/dist/wazo-sdk.js +2 -2
- package/esm/api/auth.js +4 -0
- package/esm/simple/Auth.js +8 -3
- package/esm/simple/__tests__/Auth.test.js +25 -1
- package/esm/simple/index.js +2 -1
- package/esm/types/api/auth.d.ts.map +1 -1
- package/esm/types/simple/Auth.d.ts +2 -0
- package/esm/types/simple/Auth.d.ts.map +1 -1
- package/esm/types/simple/index.d.ts +2 -1
- package/esm/types/simple/index.d.ts.map +1 -1
- package/lib/api/auth.js +4 -0
- package/lib/simple/Auth.js +10 -4
- package/lib/simple/__tests__/Auth.test.js +25 -1
- package/lib/simple/index.js +1 -0
- package/lib/types/api/auth.d.ts.map +1 -1
- package/lib/types/simple/Auth.d.ts +2 -0
- package/lib/types/simple/Auth.d.ts.map +1 -1
- package/lib/types/simple/index.d.ts +2 -1
- package/lib/types/simple/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/auth.ts +12 -1
- package/src/simple/Auth.ts +8 -3
- package/src/simple/__tests__/Auth.test.ts +33 -1
- package/src/simple/index.ts +2 -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) => {
|
package/esm/simple/Auth.js
CHANGED
|
@@ -14,6 +14,8 @@ export class NoDomainNameError extends Error {
|
|
|
14
14
|
}
|
|
15
15
|
export class NoSamlRouteError extends Error {
|
|
16
16
|
}
|
|
17
|
+
export class SamlConfigError extends Error {
|
|
18
|
+
}
|
|
17
19
|
const logger = IssueReporter.loggerFor('simple-auth');
|
|
18
20
|
export class Auth {
|
|
19
21
|
clientId;
|
|
@@ -125,12 +127,15 @@ export class Auth {
|
|
|
125
127
|
response = await getApiClient().auth.initiateIdpAuthentication(domain, redirectUrl);
|
|
126
128
|
}
|
|
127
129
|
catch (e) {
|
|
128
|
-
logger.error('Error during IdP authentication
|
|
129
|
-
|
|
130
|
+
logger.error('Error during IdP authentication initialization:', e.message);
|
|
131
|
+
throw e;
|
|
130
132
|
}
|
|
131
133
|
if (!response.ok) {
|
|
132
134
|
if (response.status === 404) {
|
|
133
|
-
throw new NoSamlRouteError('No route found for
|
|
135
|
+
throw new NoSamlRouteError('No route found for SAML SSO');
|
|
136
|
+
}
|
|
137
|
+
if (response.status === 500) {
|
|
138
|
+
throw new SamlConfigError('SAML/server configuration error');
|
|
134
139
|
}
|
|
135
140
|
const error = await response.json();
|
|
136
141
|
throw new Error(error.message || error.reason);
|
|
@@ -134,7 +134,7 @@ describe('simple/Auth', () => {
|
|
|
134
134
|
initiateIdpAuthentication,
|
|
135
135
|
},
|
|
136
136
|
}));
|
|
137
|
-
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for
|
|
137
|
+
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for SAML SSO');
|
|
138
138
|
});
|
|
139
139
|
it('should return an error `message` if the response is NOT ok', async () => {
|
|
140
140
|
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
@@ -172,5 +172,29 @@ describe('simple/Auth', () => {
|
|
|
172
172
|
}));
|
|
173
173
|
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('');
|
|
174
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
|
+
}));
|
|
192
|
+
getApiClient.mockImplementation(() => ({
|
|
193
|
+
auth: {
|
|
194
|
+
initiateIdpAuthentication,
|
|
195
|
+
},
|
|
196
|
+
}));
|
|
197
|
+
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('SAML/server configuration error');
|
|
198
|
+
});
|
|
175
199
|
});
|
|
176
200
|
});
|
package/esm/simple/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable import/no-named-as-default */
|
|
2
2
|
/* global window */
|
|
3
|
-
import Auth, { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError } from './Auth';
|
|
3
|
+
import Auth, { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError, SamlConfigError } from './Auth';
|
|
4
4
|
import Phone from './Phone';
|
|
5
5
|
import Websocket from './Websocket';
|
|
6
6
|
import Room from './room/Room';
|
|
@@ -126,6 +126,7 @@ const Wazo = {
|
|
|
126
126
|
NoTenantIdError,
|
|
127
127
|
NoDomainNameError,
|
|
128
128
|
NoSamlRouteError,
|
|
129
|
+
SamlConfigError,
|
|
129
130
|
};
|
|
130
131
|
if (typeof window !== 'undefined') {
|
|
131
132
|
window.Wazo = Wazo;
|
|
@@ -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":"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;AAQF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpE,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAE;IACjE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClD,SAAS,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC1E,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7E,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC7K,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,eAAe,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpK,2BAA2B,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,sBAAsB,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,iBAAiB,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvG,YAAY,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,sBAAsB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,YAAY,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,cAAc,EAAE,CAAC,SAAS,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,eAAe,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACtD,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,SAAS,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,WAAW,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChD,SAAS,EAAE,CAAC,UAAU,EAAE,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjI,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7G,YAAY,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,UAAU,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,YAAY,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,mBAAmB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;iCAEwB,YAAY,WAAW,MAAM,KAAG,KAAK;AAA9D,wBAsNI"}
|
|
@@ -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;
|
|
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;IAyBlI,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAKnE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAwBjH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAI3E,MAAM,CAAC,kBAAkB,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BtD,oBAAoB,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI;IAIhE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI;IAKpE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;IAIxD,sBAAsB,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;IAI7D,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAczF,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAStE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAI3C,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAMjD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK9C,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAK/C,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI3C,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,UAAU,IAAI,OAAO,GAAG,SAAS;IAIjC,YAAY,IAAI,MAAM;IAQtB,WAAW,IAAI,MAAM;IAQrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,IAAI,MAAM;IAIjB,uBAAuB,CAAC,IAAI,EAAC,MAAM;IAOnC,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAgB5B,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAiCvD,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CA+DrE;;AAOD,wBAAuC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError } from './Auth';
|
|
1
|
+
import { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError, SamlConfigError } from './Auth';
|
|
2
2
|
import Room from './room/Room';
|
|
3
3
|
import SipRoom from './room/SipRoom';
|
|
4
4
|
import RemoteParticipant from './room/RemoteParticipant';
|
|
@@ -147,6 +147,7 @@ declare const Wazo: {
|
|
|
147
147
|
NoTenantIdError: typeof NoTenantIdError;
|
|
148
148
|
NoDomainNameError: typeof NoDomainNameError;
|
|
149
149
|
NoSamlRouteError: typeof NoSamlRouteError;
|
|
150
|
+
SamlConfigError: typeof SamlConfigError;
|
|
150
151
|
};
|
|
151
152
|
export default Wazo;
|
|
152
153
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGhJ,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,MAAM,MAAM,eAAe,CAAC;AAKnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAClE,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAGxD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGT,CAAC;AAUF,eAAe,IAAI,CAAC"}
|
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* () {
|
package/lib/simple/Auth.js
CHANGED
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.Auth = exports.NoSamlRouteError = exports.NoDomainNameError = exports.NoTenantIdError = exports.InvalidAuthorization = exports.InvalidSubscription = void 0;
|
|
38
|
+
exports.Auth = exports.SamlConfigError = exports.NoSamlRouteError = exports.NoDomainNameError = exports.NoTenantIdError = exports.InvalidAuthorization = exports.InvalidSubscription = void 0;
|
|
39
39
|
const auth_1 = require("../api/auth");
|
|
40
40
|
const getApiClient_1 = __importStar(require("../service/getApiClient"));
|
|
41
41
|
const IssueReporter_1 = __importDefault(require("../service/IssueReporter"));
|
|
@@ -57,6 +57,9 @@ exports.NoDomainNameError = NoDomainNameError;
|
|
|
57
57
|
class NoSamlRouteError extends Error {
|
|
58
58
|
}
|
|
59
59
|
exports.NoSamlRouteError = NoSamlRouteError;
|
|
60
|
+
class SamlConfigError extends Error {
|
|
61
|
+
}
|
|
62
|
+
exports.SamlConfigError = SamlConfigError;
|
|
60
63
|
const logger = IssueReporter_1.default.loggerFor('simple-auth');
|
|
61
64
|
class Auth {
|
|
62
65
|
constructor() {
|
|
@@ -158,12 +161,15 @@ class Auth {
|
|
|
158
161
|
response = yield (0, getApiClient_1.default)().auth.initiateIdpAuthentication(domain, redirectUrl);
|
|
159
162
|
}
|
|
160
163
|
catch (e) {
|
|
161
|
-
logger.error('Error during IdP authentication
|
|
162
|
-
|
|
164
|
+
logger.error('Error during IdP authentication initialization:', e.message);
|
|
165
|
+
throw e;
|
|
163
166
|
}
|
|
164
167
|
if (!response.ok) {
|
|
165
168
|
if (response.status === 404) {
|
|
166
|
-
throw new NoSamlRouteError('No route found for
|
|
169
|
+
throw new NoSamlRouteError('No route found for SAML SSO');
|
|
170
|
+
}
|
|
171
|
+
if (response.status === 500) {
|
|
172
|
+
throw new SamlConfigError('SAML/server configuration error');
|
|
167
173
|
}
|
|
168
174
|
const error = yield response.json();
|
|
169
175
|
throw new Error(error.message || error.reason);
|
|
@@ -168,7 +168,7 @@ describe('simple/Auth', () => {
|
|
|
168
168
|
initiateIdpAuthentication,
|
|
169
169
|
},
|
|
170
170
|
}));
|
|
171
|
-
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for
|
|
171
|
+
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for SAML SSO');
|
|
172
172
|
}));
|
|
173
173
|
it('should return an error `message` if the response is NOT ok', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
174
174
|
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
@@ -206,5 +206,29 @@ describe('simple/Auth', () => {
|
|
|
206
206
|
}));
|
|
207
207
|
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('');
|
|
208
208
|
}));
|
|
209
|
+
it('should return a NoSAMLRouteError if the response is a 404', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
210
|
+
const initiateIdpAuthentication = jest.fn(() => Promise.resolve({
|
|
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
|
+
}));
|
|
226
|
+
getApiClient_1.default.mockImplementation(() => ({
|
|
227
|
+
auth: {
|
|
228
|
+
initiateIdpAuthentication,
|
|
229
|
+
},
|
|
230
|
+
}));
|
|
231
|
+
yield expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('SAML/server configuration error');
|
|
232
|
+
}));
|
|
209
233
|
});
|
|
210
234
|
});
|
package/lib/simple/index.js
CHANGED
|
@@ -154,6 +154,7 @@ const Wazo = {
|
|
|
154
154
|
NoTenantIdError: Auth_1.NoTenantIdError,
|
|
155
155
|
NoDomainNameError: Auth_1.NoDomainNameError,
|
|
156
156
|
NoSamlRouteError: Auth_1.NoSamlRouteError,
|
|
157
|
+
SamlConfigError: Auth_1.SamlConfigError,
|
|
157
158
|
};
|
|
158
159
|
if (typeof window !== 'undefined') {
|
|
159
160
|
window.Wazo = Wazo;
|
|
@@ -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;
|
|
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;IAyBlI,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAKnE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAwBjH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAI3E,MAAM,CAAC,kBAAkB,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BtD,oBAAoB,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI;IAIhE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,OAAO,KAAK,IAAI;IAKpE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;IAIxD,sBAAsB,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;IAI7D,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAczF,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAStE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAI3C,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAMjD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK9C,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAK/C,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI3C,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,UAAU,IAAI,OAAO,GAAG,SAAS;IAIjC,YAAY,IAAI,MAAM;IAQtB,WAAW,IAAI,MAAM;IAQrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,IAAI,MAAM;IAIjB,uBAAuB,CAAC,IAAI,EAAC,MAAM;IAOnC,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAgB5B,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAiCvD,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CA+DrE;;AAOD,wBAAuC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError } from './Auth';
|
|
1
|
+
import { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError, SamlConfigError } from './Auth';
|
|
2
2
|
import Room from './room/Room';
|
|
3
3
|
import SipRoom from './room/SipRoom';
|
|
4
4
|
import RemoteParticipant from './room/RemoteParticipant';
|
|
@@ -147,6 +147,7 @@ declare const Wazo: {
|
|
|
147
147
|
NoTenantIdError: typeof NoTenantIdError;
|
|
148
148
|
NoDomainNameError: typeof NoDomainNameError;
|
|
149
149
|
NoSamlRouteError: typeof NoSamlRouteError;
|
|
150
|
+
SamlConfigError: typeof SamlConfigError;
|
|
150
151
|
};
|
|
151
152
|
export default Wazo;
|
|
152
153
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/simple/index.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGhJ,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,MAAM,MAAM,eAAe,CAAC;AAKnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAClE,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAChD,OAAO,gBAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAGxD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGT,CAAC;AAUF,eAAe,IAAI,CAAC"}
|
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) => {
|
package/src/simple/Auth.ts
CHANGED
|
@@ -25,6 +25,7 @@ export class InvalidAuthorization extends Error {}
|
|
|
25
25
|
export class NoTenantIdError extends Error {}
|
|
26
26
|
export class NoDomainNameError extends Error {}
|
|
27
27
|
export class NoSamlRouteError extends Error {}
|
|
28
|
+
export class SamlConfigError extends Error {}
|
|
28
29
|
|
|
29
30
|
const logger = IssueReporter.loggerFor('simple-auth');
|
|
30
31
|
|
|
@@ -171,13 +172,17 @@ export class Auth {
|
|
|
171
172
|
try {
|
|
172
173
|
response = await getApiClient().auth.initiateIdpAuthentication(domain, redirectUrl);
|
|
173
174
|
} catch (e: any) {
|
|
174
|
-
logger.error('Error during IdP authentication
|
|
175
|
-
|
|
175
|
+
logger.error('Error during IdP authentication initialization:', e.message);
|
|
176
|
+
throw e;
|
|
176
177
|
}
|
|
177
178
|
|
|
178
179
|
if (!response.ok) {
|
|
179
180
|
if (response.status === 404) {
|
|
180
|
-
throw new NoSamlRouteError('No route found for
|
|
181
|
+
throw new NoSamlRouteError('No route found for SAML SSO');
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (response.status === 500) {
|
|
185
|
+
throw new SamlConfigError('SAML/server configuration error');
|
|
181
186
|
}
|
|
182
187
|
|
|
183
188
|
const error = await response.json();
|
|
@@ -155,7 +155,7 @@ describe('simple/Auth', () => {
|
|
|
155
155
|
}));
|
|
156
156
|
|
|
157
157
|
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow(
|
|
158
|
-
'No route found for
|
|
158
|
+
'No route found for SAML SSO',
|
|
159
159
|
);
|
|
160
160
|
});
|
|
161
161
|
|
|
@@ -210,5 +210,37 @@ describe('simple/Auth', () => {
|
|
|
210
210
|
|
|
211
211
|
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('');
|
|
212
212
|
});
|
|
213
|
+
|
|
214
|
+
it('should return a NoSAMLRouteError if the response is a 404', async () => {
|
|
215
|
+
const initiateIdpAuthentication = jest.fn(() =>
|
|
216
|
+
Promise.resolve({
|
|
217
|
+
ok: false,
|
|
218
|
+
status: 404,
|
|
219
|
+
}));
|
|
220
|
+
|
|
221
|
+
(getApiClient as any).mockImplementation(() => ({
|
|
222
|
+
auth: {
|
|
223
|
+
initiateIdpAuthentication,
|
|
224
|
+
},
|
|
225
|
+
}));
|
|
226
|
+
|
|
227
|
+
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('No route found for SAML SSO');
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
it('should return a SamlConfigError if the response is a 500', async () => {
|
|
231
|
+
const initiateIdpAuthentication = jest.fn(() =>
|
|
232
|
+
Promise.resolve({
|
|
233
|
+
ok: false,
|
|
234
|
+
status: 500,
|
|
235
|
+
}));
|
|
236
|
+
|
|
237
|
+
(getApiClient as any).mockImplementation(() => ({
|
|
238
|
+
auth: {
|
|
239
|
+
initiateIdpAuthentication,
|
|
240
|
+
},
|
|
241
|
+
}));
|
|
242
|
+
|
|
243
|
+
await expect(Auth.initiateIdpAuthentication('example.com', 'https://myapp.xyz')).rejects.toThrow('SAML/server configuration error');
|
|
244
|
+
});
|
|
213
245
|
});
|
|
214
246
|
});
|
package/src/simple/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable import/no-named-as-default */
|
|
2
2
|
/* global window */
|
|
3
|
-
import Auth, { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError } from './Auth';
|
|
3
|
+
import Auth, { InvalidSubscription, InvalidAuthorization, NoTenantIdError, NoDomainNameError, NoSamlRouteError, SamlConfigError } from './Auth';
|
|
4
4
|
import Phone from './Phone';
|
|
5
5
|
import Websocket from './Websocket';
|
|
6
6
|
import Room from './room/Room';
|
|
@@ -139,6 +139,7 @@ const Wazo = {
|
|
|
139
139
|
NoTenantIdError,
|
|
140
140
|
NoDomainNameError,
|
|
141
141
|
NoSamlRouteError,
|
|
142
|
+
SamlConfigError,
|
|
142
143
|
};
|
|
143
144
|
|
|
144
145
|
if (typeof window !== 'undefined') {
|