[keycloak-user] Group / Subgroup Creation in Java

Stian Thorgersen sthorger at redhat.com
Mon Feb 6 02:39:32 EST 2017


Most create methods in the admin java lib will return a result object. You
need to call close on this to release the underlying http connection. This
could be the cause.

On 6 February 2017 at 08:33, Rodel Talampas <rodel.talampas at helixleisure.com
> wrote:

> Hi All,
>
> Need help on the following scenario.
>
> Been doing some POC for our keycloak user management project and having
> problems passing my unit test as when I create 3 level subgroups, my
> Keycloak Server hangs.
>
> Sample Junit Test code:
> ======================================================
>                         createSubGroups(
>                                 keycloak, "REALM1", CASHIER_GROUP,
>                                 "CLIENT_1");
>
>                         createSubGroups(
>                                 keycloak, "REALM1", DUTY_MANAGER_GROUP,
>                                 "CLIENT_1");
>
>                         createSubGroups(
>                                 keycloak, "REALM1", DUTY_MANAGER_GROUP,
>                                 "CLIENT_2");
>
>                         createSubGroups(
>                                 keycloak, "REALM1", CASHIER_GROUP,
>                                 "CLIENT_2");
>
> ====================================
> private static void createSubGroups(Keycloak keycloak, String realmName,
> String groupName,
>                 String realmClient){
>
>                             GroupRepresentation parentSub = null;
>                 boolean found = false;
>                 for (GroupRepresentation group: keycloak.realm(realmName).
> groups().groups()){
>                         for (GroupRepresentation sub:
> group.getSubGroups()){
>                                 if (sub.getName().equals(groupName))
>                                 {
>                                         parentSub = sub;
>                                         found = true;
>                                         break;
>                                 }
>                         }
>                         if (found) break;
>                 }
>
>                 GroupResource parentSubResource =
> keycloak.realm(realmName).groups().group(parentSub.getId());
>                 GroupRepresentation subGroup1 = new GroupRepresentation();
>                 subGroup1.setName(groupName + "-" + realmClient);
>                 subGroup1.setPath("/Group_1/" + groupName);
>                 parentSubResource.subGroup(subGroup1);
> }
>
> ========== Target Output Below ======
>
> Groups
>          Group_1
>                    DUTY_MANAGER
>                 DUTY_MANAGER_Client_1
>                              DUTY_MANAGER_Client_2
>                    CASHIER
>                              CASHIER_Client_1
>                              CASHIER_Client_2
>
> =================================
>
> My code will only work properly for the first 2 calls of the method. On
> the 3rd call, it will somehow hang on the loop.
> Am not able to debug nor step through in Junit.
>
> It will only produce the following:
> Groups
>          Group_1
>                    DUTY_MANAGER
>                 DUTY_MANAGER_Client_1
>                    CASHIER
>                              CASHIER_Client_1
>
>
> I also tried of instead using a loop I use the getGroupByPath from the
> realmResource but still the same issue.
> The only thing left for me is to call the Restful Service directly from my
> code.
>
> Any suggestions will be very much appreciated.
>
> Thanks
> Rodel
>
>
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
>


More information about the keycloak-user mailing list