ef-keycloak-connect 1.5.0 → 1.5.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.
- package/package.json +1 -1
- package/services/keycloakService.js +160 -73
package/package.json
CHANGED
|
@@ -148,8 +148,8 @@ class KeycloakService extends Keycloak {
|
|
|
148
148
|
let getuserDetails = await requestController.httpRequest(config, true);
|
|
149
149
|
let responseObject = {
|
|
150
150
|
'id': getuserDetails.data[0].id,
|
|
151
|
-
'firstName': getuserDetails.data[0].firstName,
|
|
152
|
-
'lastName': getuserDetails.data[0].lastName,
|
|
151
|
+
'firstName': getuserDetails.data[0].firstName ? getuserDetails.data[0].firstName : '',
|
|
152
|
+
'lastName': getuserDetails.data[0].lastName ? getuserDetails.data[0].lastName : '',
|
|
153
153
|
'username': getuserDetails.data[0].username,
|
|
154
154
|
'permittedResources': {
|
|
155
155
|
'Resources': intrsopectionResponse.data.authorization.permissions
|
|
@@ -184,11 +184,21 @@ class KeycloakService extends Keycloak {
|
|
|
184
184
|
resolve(finalObject);
|
|
185
185
|
|
|
186
186
|
} catch (error) {
|
|
187
|
-
|
|
187
|
+
console.log("Error while fetching Groups of User in Auth Process ");
|
|
188
|
+
reject(error);
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
191
|
catch (error) {
|
|
191
|
-
|
|
192
|
+
|
|
193
|
+
if (error.response) {
|
|
194
|
+
reject({
|
|
195
|
+
error: 'Error while fetching the User Details during Login Process',
|
|
196
|
+
status: error.response.status,
|
|
197
|
+
errorMessage: error.response.data
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
reject("Error while fetching the User Details during Login Process " + error);
|
|
192
202
|
}
|
|
193
203
|
}
|
|
194
204
|
else {
|
|
@@ -197,25 +207,61 @@ class KeycloakService extends Keycloak {
|
|
|
197
207
|
}
|
|
198
208
|
}
|
|
199
209
|
catch (error) {
|
|
200
|
-
|
|
210
|
+
|
|
211
|
+
if (error.response) {
|
|
212
|
+
reject({
|
|
213
|
+
error: 'Error while generating Admin Access Token',
|
|
214
|
+
status: error.response.status,
|
|
215
|
+
errorMessage: error.response.data
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
reject("Error while generating Admin Access Token " + error);
|
|
201
220
|
}
|
|
202
221
|
}
|
|
203
222
|
catch (error) {
|
|
204
|
-
|
|
223
|
+
if (error.response) {
|
|
224
|
+
reject({
|
|
225
|
+
error: 'Error while fetching Introspect token',
|
|
226
|
+
status: error.response.status,
|
|
227
|
+
errorMessage: error.response.data
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
reject("Error while fetching Introspect token " + error);
|
|
205
232
|
}
|
|
206
233
|
} else {
|
|
207
234
|
reject("RPT Request Failed");
|
|
208
235
|
}
|
|
209
236
|
} catch (error) {
|
|
210
|
-
|
|
237
|
+
|
|
238
|
+
if (error.response) {
|
|
239
|
+
reject({
|
|
240
|
+
error: 'Error while fetching RPT token, Please make sure all required Permissions & ' +
|
|
241
|
+
'Groups are assigned to User. For example, user with role agent must be assigned agents_permission group & all required permissions are created',
|
|
242
|
+
status: error.response.status,
|
|
243
|
+
errorMessage: error.response.data
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
reject("Error while fetching RPT token " + error);
|
|
211
248
|
}
|
|
212
249
|
}
|
|
213
250
|
else {
|
|
214
251
|
reject("Access Token Request Failed");
|
|
215
252
|
}
|
|
216
253
|
}
|
|
217
|
-
catch (
|
|
218
|
-
|
|
254
|
+
catch (error) {
|
|
255
|
+
|
|
256
|
+
if (error.response) {
|
|
257
|
+
reject({
|
|
258
|
+
error: 'Error while generating Access Token',
|
|
259
|
+
status: error.response.status,
|
|
260
|
+
errorMessage: error.response.data
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
reject("Error while generating Access Token " + error);
|
|
219
265
|
}
|
|
220
266
|
});
|
|
221
267
|
}
|
|
@@ -679,42 +725,49 @@ class KeycloakService extends Keycloak {
|
|
|
679
725
|
|
|
680
726
|
let filteredTeams = groups.filter(group => !group.name.includes('_permission'));
|
|
681
727
|
|
|
728
|
+
if (filteredTeams.length > 0) {
|
|
682
729
|
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
730
|
+
userTeam = {
|
|
731
|
+
'teamId': filteredTeams[0].id,
|
|
732
|
+
'teamName': filteredTeams[0].name
|
|
733
|
+
}
|
|
687
734
|
|
|
688
|
-
|
|
735
|
+
team.userTeam = userTeam;
|
|
689
736
|
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
737
|
+
config.method = 'get';
|
|
738
|
+
delete config.data;
|
|
739
|
+
delete config.url;
|
|
693
740
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
741
|
+
let URL3 = keycloakConfig["auth-server-url"] + 'admin/realms/' + keycloakConfig.realm + '/groups';
|
|
742
|
+
config.url = URL3;
|
|
743
|
+
config.headers.Authorization = 'Bearer ' + token;
|
|
697
744
|
|
|
698
|
-
|
|
745
|
+
try {
|
|
699
746
|
|
|
700
|
-
|
|
747
|
+
let allGroups = await requestController.httpRequest(config, true);
|
|
701
748
|
|
|
702
|
-
|
|
749
|
+
for (let group of allGroups.data) {
|
|
703
750
|
|
|
704
|
-
|
|
751
|
+
let result = await teamsService.getGroupByGroupID(group.id, username, token, keycloakConfig);
|
|
705
752
|
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
753
|
+
if (result && !result.teamName.includes('_permission')) {
|
|
754
|
+
supervisedTeams.push(result);
|
|
755
|
+
}
|
|
756
|
+
};
|
|
710
757
|
|
|
711
|
-
|
|
712
|
-
|
|
758
|
+
team.supervisedTeams = supervisedTeams;
|
|
759
|
+
resolve(team);
|
|
713
760
|
|
|
714
|
-
|
|
761
|
+
} catch (er) {
|
|
715
762
|
|
|
716
|
-
|
|
717
|
-
|
|
763
|
+
error = await this.checkErrorType(er);
|
|
764
|
+
reject(error);
|
|
765
|
+
}
|
|
766
|
+
} else {
|
|
767
|
+
reject({
|
|
768
|
+
status: 403,
|
|
769
|
+
errorMessage: 'No Teams group assigned to User, please assign one Team to user. If user has no team then assign it default group.'
|
|
770
|
+
});
|
|
718
771
|
}
|
|
719
772
|
} else {
|
|
720
773
|
|
|
@@ -1220,10 +1273,16 @@ class KeycloakService extends Keycloak {
|
|
|
1220
1273
|
|
|
1221
1274
|
}
|
|
1222
1275
|
catch (err) {
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1276
|
+
|
|
1277
|
+
if (err.response) {
|
|
1278
|
+
reject({
|
|
1279
|
+
"status": err.response.status,
|
|
1280
|
+
"message": err.response.data
|
|
1281
|
+
});
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
reject('Error while assignment of roles to User: ' + err);
|
|
1285
|
+
|
|
1227
1286
|
}
|
|
1228
1287
|
|
|
1229
1288
|
});
|
|
@@ -1233,7 +1292,7 @@ class KeycloakService extends Keycloak {
|
|
|
1233
1292
|
async createUser(username, password, token, userRoles) {
|
|
1234
1293
|
|
|
1235
1294
|
let assignRole = [];
|
|
1236
|
-
let assignGroups = [
|
|
1295
|
+
let assignGroups = userRoles.includes('supervisor') ? ["agents_permission", "default", "senior_agents_permission"] : ["agents_permission", "default"];
|
|
1237
1296
|
|
|
1238
1297
|
return new Promise(async (resolve, reject) => {
|
|
1239
1298
|
|
|
@@ -1260,10 +1319,16 @@ class KeycloakService extends Keycloak {
|
|
|
1260
1319
|
|
|
1261
1320
|
}
|
|
1262
1321
|
} catch (err) {
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1322
|
+
|
|
1323
|
+
if (err.response) {
|
|
1324
|
+
reject({
|
|
1325
|
+
"status": err.response.status,
|
|
1326
|
+
"message": err.response.data
|
|
1327
|
+
});
|
|
1328
|
+
}
|
|
1329
|
+
|
|
1330
|
+
reject('Error while fetching group against group-name: ' + err);
|
|
1331
|
+
|
|
1267
1332
|
}
|
|
1268
1333
|
|
|
1269
1334
|
}
|
|
@@ -1281,7 +1346,7 @@ class KeycloakService extends Keycloak {
|
|
|
1281
1346
|
temporary: false
|
|
1282
1347
|
}
|
|
1283
1348
|
],
|
|
1284
|
-
groups:
|
|
1349
|
+
groups: assignGroups
|
|
1285
1350
|
}
|
|
1286
1351
|
|
|
1287
1352
|
let config = {
|
|
@@ -1323,12 +1388,24 @@ class KeycloakService extends Keycloak {
|
|
|
1323
1388
|
});
|
|
1324
1389
|
}
|
|
1325
1390
|
|
|
1326
|
-
|
|
1327
|
-
|
|
1391
|
+
try {
|
|
1392
|
+
//assigning role to user
|
|
1393
|
+
let roleAssigned = await this.assignRoleToUser(userId, assignRole, token);
|
|
1394
|
+
|
|
1395
|
+
//Role assigned with status
|
|
1396
|
+
//Role assigned with status
|
|
1397
|
+
//Role assigned with status
|
|
1398
|
+
if (roleAssigned.status == 204) {
|
|
1399
|
+
resolve(tokenResponse);
|
|
1400
|
+
}
|
|
1401
|
+
} catch (err) {
|
|
1402
|
+
|
|
1403
|
+
if (err.status) {
|
|
1404
|
+
reject(err);
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
reject('Error while Assignment of role to user: ' + err);
|
|
1328
1408
|
|
|
1329
|
-
//Role assigned with status
|
|
1330
|
-
if (roleAssigned.status == 204) {
|
|
1331
|
-
resolve(tokenResponse);
|
|
1332
1409
|
}
|
|
1333
1410
|
|
|
1334
1411
|
} else {
|
|
@@ -1340,10 +1417,15 @@ class KeycloakService extends Keycloak {
|
|
|
1340
1417
|
|
|
1341
1418
|
}
|
|
1342
1419
|
catch (err) {
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1420
|
+
|
|
1421
|
+
if (err.response) {
|
|
1422
|
+
reject({
|
|
1423
|
+
"status": err.response.status,
|
|
1424
|
+
"message": err.response.data
|
|
1425
|
+
});
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
reject('Error while Creation of User: ' + err);
|
|
1347
1429
|
}
|
|
1348
1430
|
|
|
1349
1431
|
});
|
|
@@ -1668,17 +1750,17 @@ class KeycloakService extends Keycloak {
|
|
|
1668
1750
|
|
|
1669
1751
|
} catch (err) {
|
|
1670
1752
|
|
|
1671
|
-
if (err.
|
|
1672
|
-
|
|
1673
|
-
console.log("User doesn't exist in Keycloak, syncing finesse user in keycloak...");
|
|
1753
|
+
if (err.status) {
|
|
1674
1754
|
|
|
1675
|
-
|
|
1755
|
+
if (err.status == 401) {
|
|
1676
1756
|
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
}
|
|
1757
|
+
console.log("User doesn't exist in Keycloak, syncing finesse user in keycloak...");
|
|
1758
|
+
} else {
|
|
1759
|
+
throw (err);
|
|
1760
|
+
}
|
|
1681
1761
|
|
|
1762
|
+
} else {
|
|
1763
|
+
throw ("Error while fetching keycloak User token: " + err);
|
|
1682
1764
|
}
|
|
1683
1765
|
|
|
1684
1766
|
} finally {
|
|
@@ -1700,10 +1782,12 @@ class KeycloakService extends Keycloak {
|
|
|
1700
1782
|
});
|
|
1701
1783
|
|
|
1702
1784
|
} else {
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
}
|
|
1785
|
+
|
|
1786
|
+
if (err.status) {
|
|
1787
|
+
throw (err);
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1790
|
+
throw ("Error While getting Keycloak admin token: " + err);
|
|
1707
1791
|
}
|
|
1708
1792
|
|
|
1709
1793
|
}
|
|
@@ -1746,12 +1830,11 @@ class KeycloakService extends Keycloak {
|
|
|
1746
1830
|
|
|
1747
1831
|
} else {
|
|
1748
1832
|
|
|
1749
|
-
|
|
1833
|
+
if (err.status) {
|
|
1834
|
+
throw (err);
|
|
1835
|
+
}
|
|
1750
1836
|
|
|
1751
|
-
throw (
|
|
1752
|
-
"status": err.response.status,
|
|
1753
|
-
"message": "Error While creating Keycloak user: " + err.response.data.error_description
|
|
1754
|
-
});
|
|
1837
|
+
throw ("Error While creating Keycloak user: " + err);
|
|
1755
1838
|
}
|
|
1756
1839
|
}
|
|
1757
1840
|
}
|
|
@@ -1827,10 +1910,14 @@ class KeycloakService extends Keycloak {
|
|
|
1827
1910
|
|
|
1828
1911
|
} else {
|
|
1829
1912
|
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1913
|
+
if (err.response) {
|
|
1914
|
+
return ({
|
|
1915
|
+
status: error.response.status,
|
|
1916
|
+
errorMessage: error.response.data
|
|
1917
|
+
});
|
|
1918
|
+
}
|
|
1919
|
+
|
|
1920
|
+
return (err);
|
|
1834
1921
|
}
|
|
1835
1922
|
}
|
|
1836
1923
|
|