Class ExoLDAPIdentityStoreImpl

java.lang.Object
org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
org.picketlink.idm.impl.store.ldap.ExoLDAPIdentityStoreImpl
All Implemented Interfaces:
Serializable, org.picketlink.idm.spi.store.AttributeStore, org.picketlink.idm.spi.store.IdentityStore, org.picketlink.idm.spi.store.IdentityStoreSessionFactory

public class ExoLDAPIdentityStoreImpl extends org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
extends the class LDAPIdentityStoreImpl from PicketLink Idm in order to improve the fetching members of groups from Active directory by fixing the way when retrieving the ID of the IdentityObject from LDAP in case CN is not equal to the UID attribute value
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     

    Fields inherited from class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl

    MEMBERSHIP_TYPE, ROLE_TYPE, ROLE_TYPE_MEMBER
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    bootstrap(org.picketlink.idm.spi.configuration.IdentityStoreConfigurationContext configurationContext)
     
    org.picketlink.idm.spi.model.IdentityObject
    findIdentityObject(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, String id)
    retrieve the ID of the IdentityObject from LDAP according to the customer's configuration (prevent problems when cn is not equal to the uid attribute )
    Collection<org.picketlink.idm.spi.model.IdentityObject>
    findIdentityObject(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, org.picketlink.idm.spi.model.IdentityObject identity, org.picketlink.idm.spi.model.IdentityObjectRelationshipType relationshipType, Collection<org.picketlink.idm.spi.model.IdentityObjectType> excludes, boolean parent, org.picketlink.idm.spi.search.IdentityObjectSearchCriteria criteria)
    To fix the exception encountered when trying to retrieve filtered groups, we verify if findIdentityObject() returns null or not
    Collection<org.picketlink.idm.spi.model.IdentityObject>
    findIdentityObject(org.picketlink.idm.spi.store.IdentityStoreInvocationContext invocationCtx, org.picketlink.idm.spi.model.IdentityObjectType type, org.picketlink.idm.spi.search.IdentityObjectSearchCriteria criteria)
    This is an override of original implementation to be able to query on modification date.
    Map<String,org.picketlink.idm.spi.model.IdentityObjectAttribute>
    getAttributes(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, org.picketlink.idm.spi.model.IdentityObject identity)
     
    List<org.picketlink.idm.impl.store.ldap.SerializableSearchResult>
    searchIdentityObjects(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, String[] entryCtxs, String filter, Object[] filterArgs, String[] returningAttributes, String searchScope, Control[] requestControls)
     

    Methods inherited from class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl

    addAttributes, checkCtx, createIdentityObject, createIdentityObject, createIdentityObjectInstance, createIdentityStoreSession, createIdentityStoreSession, createRelationship, createRelationshipName, findIdentityObject, findIdentityObject, findIdentityObject, findIdentityObject, findIdentityObjectByUniqueAttribute, findRelatedIdentityObjects, getAttribute, getAttributesMetaData, getId, getIdentityObjectCount, getIdentityObjectCount, getIdentityObjectsCount, getRelationshipNameProperties, getRelationshipNames, getRelationshipNames, getRelationshipNames, getRelationshipNames, getRelationshipProperties, getRelationshipsCount, getSupportedAttributeNames, getSupportedFeatures, obtainOrCreateContext, removeAttributes, removeIdentityObject, removeRelationship, removeRelationshipName, removeRelationshipNameProperties, removeRelationshipProperties, removeRelationships, resolveRelationships, resolveRelationships, searchLDAP, setRelationshipNameProperties, setRelationshipProperties, toString, updateAttributes, updateCredential, validateCredential

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • ExoLDAPIdentityStoreImpl

      public ExoLDAPIdentityStoreImpl(String id)
  • Method Details

    • bootstrap

      public void bootstrap(org.picketlink.idm.spi.configuration.IdentityStoreConfigurationContext configurationContext) throws org.picketlink.idm.common.exception.IdentityException
      Specified by:
      bootstrap in interface org.picketlink.idm.spi.store.IdentityStore
      Overrides:
      bootstrap in class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
      Throws:
      org.picketlink.idm.common.exception.IdentityException
    • findIdentityObject

      public org.picketlink.idm.spi.model.IdentityObject findIdentityObject(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, String id) throws org.picketlink.idm.common.exception.IdentityException
      retrieve the ID of the IdentityObject from LDAP according to the customer's configuration (prevent problems when cn is not equal to the uid attribute )
      Specified by:
      findIdentityObject in interface org.picketlink.idm.spi.store.IdentityStore
      Overrides:
      findIdentityObject in class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
      Parameters:
      ctx - the IdentityStoreInvocationContext
      id - the identity
      Returns:
      the IdentityObject
      Throws:
      org.picketlink.idm.common.exception.IdentityException
    • findIdentityObject

      public Collection<org.picketlink.idm.spi.model.IdentityObject> findIdentityObject(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, org.picketlink.idm.spi.model.IdentityObject identity, org.picketlink.idm.spi.model.IdentityObjectRelationshipType relationshipType, Collection<org.picketlink.idm.spi.model.IdentityObjectType> excludes, boolean parent, org.picketlink.idm.spi.search.IdentityObjectSearchCriteria criteria) throws org.picketlink.idm.common.exception.IdentityException
      To fix the exception encountered when trying to retrieve filtered groups, we verify if findIdentityObject() returns null or not
      Specified by:
      findIdentityObject in interface org.picketlink.idm.spi.store.IdentityStore
      Overrides:
      findIdentityObject in class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
      Parameters:
      ctx - the IdentityStoreInvocationContext
      identity - the IdentityObject
      relationshipType - the IdentityObjectRelationshipType
      excludes - the excluded IdentityObjectSearchCriteria
      parent - if has parent returns true, else return false
      criteria - the IdentityObjectSearchCriteria
      Returns:
      IdentityObject collection
      Throws:
      org.picketlink.idm.common.exception.IdentityException
    • findIdentityObject

      public Collection<org.picketlink.idm.spi.model.IdentityObject> findIdentityObject(org.picketlink.idm.spi.store.IdentityStoreInvocationContext invocationCtx, org.picketlink.idm.spi.model.IdentityObjectType type, org.picketlink.idm.spi.search.IdentityObjectSearchCriteria criteria) throws org.picketlink.idm.common.exception.IdentityException
      This is an override of original implementation to be able to query on modification date.
      Specified by:
      findIdentityObject in interface org.picketlink.idm.spi.store.IdentityStore
      Overrides:
      findIdentityObject in class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
      Throws:
      org.picketlink.idm.common.exception.IdentityException
    • searchIdentityObjects

      public List<org.picketlink.idm.impl.store.ldap.SerializableSearchResult> searchIdentityObjects(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, String[] entryCtxs, String filter, Object[] filterArgs, String[] returningAttributes, String searchScope, Control[] requestControls) throws NamingException, org.picketlink.idm.common.exception.IdentityException
      Overrides:
      searchIdentityObjects in class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
      Throws:
      NamingException
      org.picketlink.idm.common.exception.IdentityException
    • getAttributes

      public Map<String,org.picketlink.idm.spi.model.IdentityObjectAttribute> getAttributes(org.picketlink.idm.spi.store.IdentityStoreInvocationContext ctx, org.picketlink.idm.spi.model.IdentityObject identity) throws org.picketlink.idm.common.exception.IdentityException
      Specified by:
      getAttributes in interface org.picketlink.idm.spi.store.AttributeStore
      Overrides:
      getAttributes in class org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl
      Throws:
      org.picketlink.idm.common.exception.IdentityException