148         SynchronizationResult syncResult = 
new SynchronizationResult() {
   151             public String getStatus() {
   152                 return String.format(
"%d imported groups, %d updated groups, %d removed groups", getAdded(), getUpdated(), getRemoved());
   163         Map<String, LDAPObject> ldapGroupsMap = 
new HashMap<>();
   164         List<GroupTreeResolver.Group> ldapGroupsRep = 
new LinkedList<>();
   167         for (LDAPObject ldapGroup : ldapGroups) {
   168             String groupName = ldapGroup.getAttributeAsString(groupsRdnAttr);
   171                 Set<String> subgroupNames = 
new HashSet<>();
   173                     subgroupNames.add(groupDn.getFirstRdnAttrValue());
   176                 ldapGroupsRep.add(
new GroupTreeResolver.Group(groupName, subgroupNames));
   179             ldapGroupsMap.put(groupName, ldapGroup);
   185                 List<GroupTreeResolver.GroupTreeEntry> groupTrees = 
new GroupTreeResolver().resolveGroupTree(ldapGroupsRep, 
config.
isIgnoreMissingGroups());
   188             } 
catch (GroupTreeResolver.GroupTreeResolveException gre) {
   189                 throw new ModelException(
"Couldn't resolve groups from LDAP. Fix LDAP or skip preserve inheritance. Details: " + gre.getMessage(), gre);
   192             Set<String> visitedGroupIds = 
new HashSet<>();
   195             for (Map.Entry<String, LDAPObject> groupEntry : ldapGroupsMap.entrySet()) {
   196                 String groupName = groupEntry.getKey();
   197                 GroupModel kcExistingGroup = KeycloakModelUtils.findGroupByPath(realm, 
"/" + groupName);
   199                 if (kcExistingGroup != null) {
   201                     syncResult.increaseUpdated();
   202                     visitedGroupIds.add(kcExistingGroup.getId());
   204                     GroupModel kcGroup = realm.createGroup(groupName);
   206                     realm.moveGroup(kcGroup, null);
   207                     syncResult.increaseAdded();
   208                     visitedGroupIds.add(kcGroup.getId());
 boolean isIgnoreMissingGroups()
Definition: GroupMapperConfig.java:96
 
void updateAttributesOfKCGroup(GroupModel kcGroup, LDAPObject ldapGroup)
Definition: GroupLDAPStorageMapper.java:286
 
static final Logger logger
Definition: GroupLDAPStorageMapper.java:60
 
boolean isDropNonExistingGroupsDuringSync()
Definition: GroupMapperConfig.java:119
 
void updateKeycloakGroupTree(RealmModel realm, List< GroupTreeResolver.GroupTreeEntry > groupTrees, Map< String, LDAPObject > ldapGroups, SynchronizationResult syncResult)
Definition: GroupLDAPStorageMapper.java:223
 
boolean syncFromLDAPPerformedInThisTransaction
Definition: GroupLDAPStorageMapper.java:66
 
final GroupMapperConfig config
Definition: GroupLDAPStorageMapper.java:62
 
final ComponentModel mapperModel
Definition: AbstractLDAPStorageMapper.java:43
 
List< LDAPObject > getAllLDAPGroups(boolean includeMemberAttribute)
Definition: GroupLDAPStorageMapper.java:352
 
UserStorageProviderModel getModel()
Definition: LDAPStorageProvider.java:134
 
String getGroupNameLdapAttribute()
Definition: GroupMapperConfig.java:82
 
boolean isPreserveGroupsInheritance()
Definition: GroupMapperConfig.java:92
 
Set< LDAPDn > getLDAPSubgroups(LDAPObject ldapGroup)
Definition: GroupLDAPStorageMapper.java:138
 
void dropNonExistingKcGroups(RealmModel realm, SynchronizationResult syncResult, Set< String > visitedGroupIds)
Definition: GroupLDAPStorageMapper.java:274
 
final LDAPStorageProvider ldapProvider
Definition: AbstractLDAPStorageMapper.java:44