Class ExtSourceLdap

All Implemented Interfaces:
ExtSourceApi, ExtSourceSimpleApi, Serializable, Comparable<PerunBean>
Direct Known Subclasses:
ExtSourceEGISSO

public class ExtSourceLdap extends ExtSourceImpl implements ExtSourceApi
Ext source implementation for LDAP.
Author:
Michal Prochazka michalp@ics.muni.cz, Pavel Zlámal <zlamal@cesnet.cz>
See Also:
  • Field Details

    • LOG

      protected static final org.slf4j.Logger LOG
    • mapping

      protected Map<String,String> mapping
    • dirContext

      protected DirContext dirContext
    • filteredQuery

      protected String filteredQuery
  • Constructor Details

    • ExtSourceLdap

      public ExtSourceLdap()
  • Method Details

    • close

      public void close()
      Description copied from interface: ExtSourceSimpleApi
      If extSource needs to be closed, this method must be called.
      Specified by:
      close in interface ExtSourceSimpleApi
    • findSubjects

      public List<Map<String,String>> findSubjects(String searchString)
      Description copied from interface: ExtSourceApi
      Finds all subjects with attributes in the external source, that contains searchString.

      This method is used for getting all logins of subjects in external source with all possible attributes.

      Specified by:
      findSubjects in interface ExtSourceApi
      Returns:
      list of maps, which contains attr_name->attr_value (for all extSource attributes)
    • findSubjects

      public List<Map<String,String>> findSubjects(String searchString, int maxResults)
      Description copied from interface: ExtSourceApi
      Finds all subjects with attributes in the external source, that contains searchString limited by the maxResults

      This method is used for getting all logins of subjects in external source with all possible attributes.

      Specified by:
      findSubjects in interface ExtSourceApi
      maxResults - define max number of returned results, 0 means unlimited
      Returns:
      list of maps, which contains attr_name->attr_value (for all extSource attributes)
    • findSubjectsLogins

      public List<Map<String,String>> findSubjectsLogins(String searchString, int maxResults)
      Description copied from interface: ExtSourceSimpleApi
      Finds all subjects logins in the external source, that contains searchString, limited by the maxResults.

      This method is used for getting all logins of subjects in external source and then use them to searching in external source for other subjects attributes

      Specified by:
      findSubjectsLogins in interface ExtSourceSimpleApi
      maxResults - limit returned results
      Returns:
      list of maps, which contains attr_name->attr_value but only for login definition eg. login;MichalS
    • findSubjectsLogins

      public List<Map<String,String>> findSubjectsLogins(String searchString)
      Description copied from interface: ExtSourceSimpleApi
      Finds all subjects logins in the external source, that contains searchString.

      This method is used for getting all logins of subjects in external source and then use them to searching in external source for other subjects attributes.

      Specified by:
      findSubjectsLogins in interface ExtSourceSimpleApi
      Returns:
      list of maps, which contains attr_name->attr_value but only for login definition eg. login;MichalS
    • getContext

      protected DirContext getContext()
    • getGroupSubjects

      public List<Map<String,String>> getGroupSubjects(Map<String,String> attributes)
      Description copied from interface: ExtSourceSimpleApi
      Get the list of the subjects in the external group.
      Specified by:
      getGroupSubjects in interface ExtSourceSimpleApi
      Parameters:
      attributes - map of attributes used for quering the external source
      Returns:
      list of maps, which contains attr_name->attr_value, e.g. firstName->Michal
    • getLdapAttributeValue

      protected String getLdapAttributeValue(Attributes attributes, String ldapAttrNameRaw)
    • getSubjectAttributes

      protected Map<String,String> getSubjectAttributes(Attributes attributes)
    • getSubjectByLogin

      public Map<String,String> getSubjectByLogin(String login) throws SubjectNotExistsException
      Description copied from interface: ExtSourceSimpleApi
      Finds subject from the external source by the primary login used in external source.
      Specified by:
      getSubjectByLogin in interface ExtSourceSimpleApi
      Parameters:
      login - login used in the external source
      Returns:
      map which contains attr_name -> attr_value, e.g. firstName->Michal
      Throws:
      SubjectNotExistsException - if the subject cannot be found
    • getSubjectGroups

      public List<Map<String,String>> getSubjectGroups(Map<String,String> attributes) throws ExtSourceUnsupportedOperationException
      Description copied from interface: ExtSourceSimpleApi
      Get the list of the subject groups in the external source.
      Specified by:
      getSubjectGroups in interface ExtSourceSimpleApi
      Parameters:
      attributes - map of attributes used for quering the external source
      Returns:
      list of maps, which contains attr name and attr value
      Throws:
      ExtSourceUnsupportedOperationException
    • getUsersSubjects

      public List<Map<String,String>> getUsersSubjects()
      Description copied from interface: ExtSourceSimpleApi
      Get the list of subjects from the external source.
      Specified by:
      getUsersSubjects in interface ExtSourceSimpleApi
      Returns:
      list of maps, which contains attr_name->attr_value, e.g. firstName->Michal
    • initContext

      protected void initContext()
    • querySource

      protected List<Map<String,String>> querySource(String query, String base, int maxResults)
      Query LDAP using query in defined base. Results can be limited to the maxResults.
      Parameters:
      query -
      base -
      maxResults -
      Returns:
      List of Map of the LDAP attribute names and theirs values
      Throws:
      InternalErrorException