From 7cefca5d5f239fb32030ab1d4eb72fa774e42d48 Mon Sep 17 00:00:00 2001 From: Mauro Mugnaini Date: Tue, 16 Feb 2021 16:10:49 +0100 Subject: [PATCH] Added flags to speedup behavior changes and fixed role mapping logged info --- .../d4science/ClientsCreatorFromExport.java | 59 +++++++++++++------ 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/gcube/oidc/keycloak/d4science/ClientsCreatorFromExport.java b/src/main/java/org/gcube/oidc/keycloak/d4science/ClientsCreatorFromExport.java index 29741ad..5c82d0b 100644 --- a/src/main/java/org/gcube/oidc/keycloak/d4science/ClientsCreatorFromExport.java +++ b/src/main/java/org/gcube/oidc/keycloak/d4science/ClientsCreatorFromExport.java @@ -40,6 +40,11 @@ import org.xml.sax.SAXException; public class ClientsCreatorFromExport { + private static final boolean DELETE_CLIENTS = false; + private static final boolean CREATE_CLIENTS = true; + private static final boolean MAP_ROLES = true; + private static final boolean SHOW_STATS = true; + private KeycloakHelper kh; private Keycloak keycloak; private ExportParser exportParser; @@ -96,8 +101,9 @@ public class ClientsCreatorFromExport { configureClientResource(client, roleMap, client.authorization().resources().resources().get(0)); } // Mapping group (from LDAP mapping) to relatives client's Member role - System.out.println("\tMapping '" + realmResource + "' LDAP group to client's 'Member' role"); - kh.mapGroupToCLientRole(kh.findGroupByPath(realmResource, contextClient), client, roleMap.get(Role.MEMBER)); + String ldapGroupPath = contextClient.substring(1); + System.out.println("\tMapping '" + ldapGroupPath + "' LDAP group to client's 'Member' role"); + kh.mapGroupToCLientRole(kh.findGroupByPath(realmResource, ldapGroupPath), client, roleMap.get(Role.MEMBER)); } } @@ -221,7 +227,7 @@ public class ClientsCreatorFromExport { } for (String username : usersAndAvatars.keySet()) { String avatarURLSuffix = usersAndAvatars.get(username); - if (avatarURLSuffix != null) { + if (avatarURLSuffix != null) { System.out.println("- Saving avatar of user: " + username); try { URL avatarURL = new URL(baseURL, avatarURLSuffix); @@ -282,29 +288,44 @@ public class ClientsCreatorFromExport { exportFileFIS); Date start = new Date(); + Date lap; System.out.println("Start at " + start); -// System.out.println("Deleting clients..."); -// creator.deleteClients(); - System.out.println("\n\n * * * Creating clients * * *"); - creator.createClients(); - System.out.println("\n\n * * * Mapping users to client's roles * * *"); - creator.mapUsersWithRolesToClients(); + if (DELETE_CLIENTS) { + System.out.println("Deleting clients..."); + creator.deleteClients(); + lap = new Date(); + System.out.println("[lap seconds: " + new Long(lap.getTime() - start.getTime()).floatValue() / 1000 + "]"); + } + if (CREATE_CLIENTS) { + System.out.println("\n\n * * * Creating clients * * *"); + creator.createClients(); + lap = new Date(); + System.out.println("[lap seconds: " + new Long(lap.getTime() - start.getTime()).floatValue() / 1000 + "]"); + } + if (MAP_ROLES) { + System.out.println("\n\n * * * Mapping users to client's roles * * *"); + creator.mapUsersWithRolesToClients(); + lap = new Date(); + System.out.println("[lap seconds: " + new Long(lap.getTime() - start.getTime()).floatValue() / 1000 + "]"); + } if (avatarBaseURL != null) { System.out.println("\n\n * * * Exporting user's avatar * * *"); creator.saveAvatarsLocally(avatarBaseURL, avatarExportFolder); } Date end = new Date(); - System.out.println("Elapsed seconds: " + new Long(end.getTime() - start.getTime()).floatValue() / 1000); - System.out.println("\nClients: " + creator.getExportParser().getAllContexts().size()); - System.out.println("Users: " + creator.getExportParser().getAllUsersAndAvatars().size()); - Map>> ucar = creator.getExportParser().getAllUserContextsAndRoles(); - float rolesPerUserMean = 0; - for (String user : ucar.keySet()) { - for (String context : ucar.get(user).keySet()) { - rolesPerUserMean += ucar.get(user).get(context).size() + 1; + System.out.println("Total elapsed seconds: " + new Long(end.getTime() - start.getTime()).floatValue() / 1000); + if (SHOW_STATS) { + System.out.println("\nClients: " + creator.getExportParser().getAllContexts().size()); + System.out.println("Users: " + creator.getExportParser().getAllUsersAndAvatars().size()); + Map>> ucar = creator.getExportParser().getAllUserContextsAndRoles(); + float totalUsersRoles = 0; + for (String user : ucar.keySet()) { + for (String context : ucar.get(user).keySet()) { + totalUsersRoles += ucar.get(user).get(context).size() + 1; + } } + System.out.println( + "Roles per user: " + totalUsersRoles / creator.getExportParser().getAllUsersAndAvatars().size()); } - System.out.println( - "Roles per user mean: " + rolesPerUserMean / creator.getExportParser().getAllUsersAndAvatars().size()); } }