Class GroupLDAPStorageMapper
- java.lang.Object
- 
- org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapper
- 
- org.keycloak.storage.ldap.mappers.membership.group.GroupLDAPStorageMapper
 
 
- 
- All Implemented Interfaces:
- Provider,- LDAPStorageMapper,- CommonLDAPGroupMapper
 
 public class GroupLDAPStorageMapper extends AbstractLDAPStorageMapper implements CommonLDAPGroupMapper - Author:
- Marek Posolda
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description classGroupLDAPStorageMapper.LDAPGroupMappingsUserDelegate
 - 
Field Summary- 
Fields inherited from class org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperldapProvider, mapperModel, session
 
- 
 - 
Constructor SummaryConstructors Constructor Description GroupLDAPStorageMapper(ComponentModel mapperModel, LDAPStorageProvider ldapProvider, GroupLDAPStorageMapperFactory factory)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddGroupMappingInLDAP(RealmModel realm, GroupModel kcGroup, LDAPObject ldapUser)voidbeforeLDAPQuery(LDAPQuery query)Called before LDAP Identity query for retrieve LDAP users was executed.LDAPQuerycreateGroupQuery(boolean includeMemberAttribute)protected GroupModelcreateKcGroup(RealmModel realm, String ldapGroupName, GroupModel parentGroup)Creates a new KC group from given LDAP group name in given KC parent group or the groups path.LDAPObjectcreateLDAPGroup(String groupName, Map<String,Set<String>> additionalAttributes)LDAPQuerycreateLDAPGroupQuery()voiddeleteGroupMappingInLDAP(LDAPObject ldapUser, LDAPObject ldapGroup)protected GroupModelfindKcGroupByLDAPGroup(RealmModel realm, LDAPObject ldapGroup)protected GroupModelfindKcGroupOrSyncFromLDAP(RealmModel realm, LDAPObject ldapGroup, UserModel user)protected Stream<GroupModel>getAllKcGroups(RealmModel realm)Provides a stream of all KC groups (with their sub groups) from groups path configured by the "Groups Path" configuration property.protected List<LDAPObject>getAllLDAPGroups(boolean includeMemberAttribute)CommonLDAPGroupMapperConfiggetConfig()List<UserModel>getGroupMembers(RealmModel realm, GroupModel kcGroup, int firstResult, int maxResults)Return empty list if doesn't support storing of groupsprotected StringgetKcGroupPathFromLDAPGroupName(String ldapGroupName)Translates given LDAP group name into a KC group within the groups path.protected GroupModelgetKcGroupsPathGroup(RealmModel realm)Provides KC group defined as groups path or null (top-level group) if corresponding group is not available.protected Stream<GroupModel>getKcSubGroups(RealmModel realm, GroupModel parentGroup)Provides a list of all KC sub groups from given parent group or from groups path.protected List<LDAPObject>getLDAPGroupMappings(LDAPObject ldapUser)protected Set<LDAPDn>getLDAPSubgroups(LDAPObject ldapGroup)protected StringgetMembershipUserLdapAttribute()LDAPObjectloadLDAPGroupByName(String groupName)voidonImportUserFromLDAP(LDAPObject ldapUser, UserModel user, RealmModel realm, boolean isCreate)Called when importing user from LDAP to local keycloak DB.voidonRegisterUserToLDAP(LDAPObject ldapUser, UserModel localUser, RealmModel realm)Called when register new user to LDAP - just after user was created in Keycloak DBUserModelproxy(LDAPObject ldapUser, UserModel delegate, RealmModel realm)Called when invoke proxy on LDAP federation providerSynchronizationResultsyncDataFromFederationProviderToKeycloak(RealmModel realm)Sync data from federated storage to Keycloak.SynchronizationResultsyncDataFromKeycloakToFederationProvider(RealmModel realm)Sync data from Keycloak back to federated storageLDAPObjectupdateLDAPGroup(LDAPObject ldapObject)- 
Methods inherited from class org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperclose, getLdapProvider, getRoleMembers, mandatoryAttributeNames, onAuthenticationFailure, parseBooleanParameter
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.keycloak.storage.ldap.mappers.LDAPStorageMappergetLdapProvider, getRoleMembers, mandatoryAttributeNames, onAuthenticationFailure
 
- 
 
- 
- 
- 
Constructor Detail- 
GroupLDAPStorageMapperpublic GroupLDAPStorageMapper(ComponentModel mapperModel, LDAPStorageProvider ldapProvider, GroupLDAPStorageMapperFactory factory) 
 
- 
 - 
Method Detail- 
createLDAPGroupQuerypublic LDAPQuery createLDAPGroupQuery() - Specified by:
- createLDAPGroupQueryin interface- CommonLDAPGroupMapper
 
 - 
getConfigpublic CommonLDAPGroupMapperConfig getConfig() - Specified by:
- getConfigin interface- CommonLDAPGroupMapper
 
 - 
createGroupQuerypublic LDAPQuery createGroupQuery(boolean includeMemberAttribute) 
 - 
createLDAPGrouppublic LDAPObject createLDAPGroup(String groupName, Map<String,Set<String>> additionalAttributes) 
 - 
loadLDAPGroupByNamepublic LDAPObject loadLDAPGroupByName(String groupName) 
 - 
updateLDAPGrouppublic LDAPObject updateLDAPGroup(LDAPObject ldapObject) 
 - 
getLDAPSubgroupsprotected Set<LDAPDn> getLDAPSubgroups(LDAPObject ldapGroup) 
 - 
syncDataFromFederationProviderToKeycloakpublic SynchronizationResult syncDataFromFederationProviderToKeycloak(RealmModel realm) Description copied from interface:LDAPStorageMapperSync data from federated storage to Keycloak. It's useful just if mapper needs some data preloaded from federated storage (For example load roles from federated provider and sync them to Keycloak database) Applicable just if sync is supported- Specified by:
- syncDataFromFederationProviderToKeycloakin interface- LDAPStorageMapper
- Overrides:
- syncDataFromFederationProviderToKeycloakin class- AbstractLDAPStorageMapper
 
 - 
findKcGroupByLDAPGroupprotected GroupModel findKcGroupByLDAPGroup(RealmModel realm, LDAPObject ldapGroup) 
 - 
findKcGroupOrSyncFromLDAPprotected GroupModel findKcGroupOrSyncFromLDAP(RealmModel realm, LDAPObject ldapGroup, UserModel user) 
 - 
getAllLDAPGroupsprotected List<LDAPObject> getAllLDAPGroups(boolean includeMemberAttribute) 
 - 
syncDataFromKeycloakToFederationProviderpublic SynchronizationResult syncDataFromKeycloakToFederationProvider(RealmModel realm) Description copied from interface:LDAPStorageMapperSync data from Keycloak back to federated storage- Specified by:
- syncDataFromKeycloakToFederationProviderin interface- LDAPStorageMapper
- Overrides:
- syncDataFromKeycloakToFederationProviderin class- AbstractLDAPStorageMapper
 
 - 
getGroupMemberspublic List<UserModel> getGroupMembers(RealmModel realm, GroupModel kcGroup, int firstResult, int maxResults) Description copied from interface:LDAPStorageMapperReturn empty list if doesn't support storing of groups- Specified by:
- getGroupMembersin interface- LDAPStorageMapper
- Overrides:
- getGroupMembersin class- AbstractLDAPStorageMapper
 
 - 
addGroupMappingInLDAPpublic void addGroupMappingInLDAP(RealmModel realm, GroupModel kcGroup, LDAPObject ldapUser) 
 - 
deleteGroupMappingInLDAPpublic void deleteGroupMappingInLDAP(LDAPObject ldapUser, LDAPObject ldapGroup) 
 - 
getLDAPGroupMappingsprotected List<LDAPObject> getLDAPGroupMappings(LDAPObject ldapUser) 
 - 
beforeLDAPQuerypublic void beforeLDAPQuery(LDAPQuery query) Description copied from interface:LDAPStorageMapperCalled before LDAP Identity query for retrieve LDAP users was executed. It allows to change query somehow (add returning attributes from LDAP, change conditions etc)- Specified by:
- beforeLDAPQueryin interface- LDAPStorageMapper
 
 - 
proxypublic UserModel proxy(LDAPObject ldapUser, UserModel delegate, RealmModel realm) Description copied from interface:LDAPStorageMapperCalled when invoke proxy on LDAP federation provider- Specified by:
- proxyin interface- LDAPStorageMapper
- Returns:
 
 - 
onRegisterUserToLDAPpublic void onRegisterUserToLDAP(LDAPObject ldapUser, UserModel localUser, RealmModel realm) Description copied from interface:LDAPStorageMapperCalled when register new user to LDAP - just after user was created in Keycloak DB- Specified by:
- onRegisterUserToLDAPin interface- LDAPStorageMapper
 
 - 
onImportUserFromLDAPpublic void onImportUserFromLDAP(LDAPObject ldapUser, UserModel user, RealmModel realm, boolean isCreate) Description copied from interface:LDAPStorageMapperCalled when importing user from LDAP to local keycloak DB.- Specified by:
- onImportUserFromLDAPin interface- LDAPStorageMapper
- isCreate- true if we importing new user from LDAP. False if user already exists in Keycloak, but we are upgrading (syncing) it from LDAP
 
 - 
getMembershipUserLdapAttributeprotected String getMembershipUserLdapAttribute() 
 - 
getKcGroupPathFromLDAPGroupNameprotected String getKcGroupPathFromLDAPGroupName(String ldapGroupName) Translates given LDAP group name into a KC group within the groups path.
 - 
getKcGroupsPathGroupprotected GroupModel getKcGroupsPathGroup(RealmModel realm) Provides KC group defined as groups path or null (top-level group) if corresponding group is not available.
 - 
createKcGroupprotected GroupModel createKcGroup(RealmModel realm, String ldapGroupName, GroupModel parentGroup) Creates a new KC group from given LDAP group name in given KC parent group or the groups path.
 - 
getKcSubGroupsprotected Stream<GroupModel> getKcSubGroups(RealmModel realm, GroupModel parentGroup) Provides a list of all KC sub groups from given parent group or from groups path.
 - 
getAllKcGroupsprotected Stream<GroupModel> getAllKcGroups(RealmModel realm) Provides a stream of all KC groups (with their sub groups) from groups path configured by the "Groups Path" configuration property.
 
- 
 
-