Class AbstractDirectoryConnector<P extends AbstractDirectoryConfiguration>

  • All Implemented Interfaces:
    com.identity4j.connector.BrowseableConnector<P>, com.identity4j.connector.Connector<P>, com.identity4j.util.validator.ValidationContext, Closeable, AutoCloseable
    Direct Known Subclasses:
    DirectoryConnector

    public class AbstractDirectoryConnector<P extends AbstractDirectoryConfiguration>
    extends com.identity4j.connector.AbstractConnector<P>
    implements com.identity4j.connector.BrowseableConnector<P>
    • Field Detail

      • IDENTITY_ITERATOR

        protected static final Iterator<com.identity4j.connector.principal.Identity> IDENTITY_ITERATOR
      • ROLE_ITERATOR

        protected static final Iterator<com.identity4j.connector.principal.Role> ROLE_ITERATOR
      • capabilities

        protected static Set<com.identity4j.connector.ConnectorCapability> capabilities
    • Constructor Detail

      • AbstractDirectoryConnector

        public AbstractDirectoryConnector()
    • Method Detail

      • deleteIdentity

        public void deleteIdentity​(String principalName)
                            throws com.identity4j.connector.exception.ConnectorException
        Specified by:
        deleteIdentity in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        deleteIdentity in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • deleteRole

        public void deleteRole​(String roleName)
                        throws com.identity4j.connector.exception.ConnectorException
        Specified by:
        deleteRole in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        deleteRole in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • getCapabilities

        public Set<com.identity4j.connector.ConnectorCapability> getCapabilities()
        Specified by:
        getCapabilities in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
      • isReadOnly

        public boolean isReadOnly()
        Specified by:
        isReadOnly in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
      • getRootDn

        protected Name getRootDn()
      • createIdentity

        public final com.identity4j.connector.principal.Identity createIdentity​(com.identity4j.connector.principal.Identity identity,
                                                                                char[] password)
                                                                         throws com.identity4j.connector.exception.ConnectorException
        Specified by:
        createIdentity in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        createIdentity in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • createIdentity

        public final com.identity4j.connector.principal.Identity createIdentity​(com.identity4j.connector.principal.Identity identity,
                                                                                com.identity4j.connector.PasswordCreationCallback passwordCallback,
                                                                                boolean forceChange)
                                                                         throws com.identity4j.connector.exception.ConnectorException
        Specified by:
        createIdentity in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        createIdentity in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • getIdentityCreationObjectClasses

        protected List<String> getIdentityCreationObjectClasses​(com.identity4j.connector.principal.Identity identity)
      • finaliseCreate

        protected void finaliseCreate​(DirectoryIdentity directoryIdentity,
                                      boolean forceChange)
      • finaliseCreate

        protected String finaliseCreate​(com.identity4j.connector.principal.Identity identity,
                                        String principalName,
                                        List<Attribute> attributes)
      • getCoreIdentityAttributes

        protected Collection<String> getCoreIdentityAttributes()
      • processNamingException

        protected String processNamingException​(NamingException nme,
                                                com.identity4j.connector.Connector.PasswordResetType type,
                                                com.identity4j.connector.principal.Principal pricipal)
      • checkOtherCreationExceptions

        protected void checkOtherCreationExceptions​(com.identity4j.connector.principal.Identity identity,
                                                    Exception e)
      • checkNamingException

        protected void checkNamingException​(String errorText,
                                            NamingException nme,
                                            com.identity4j.connector.principal.Principal principal)
                                     throws com.identity4j.connector.exception.ConnectorException
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • getAttributesReservedForCreation

        protected Collection<String> getAttributesReservedForCreation()
      • getEmailAttribute

        protected String getEmailAttribute()
      • getMobileAttribute

        protected String getMobileAttribute()
      • getCreationPasswordModificationItems

        protected List<ModificationItem> getCreationPasswordModificationItems​(char[] password,
                                                                              DirectoryConfiguration config)
                                                                       throws com.identity4j.util.crypt.EncoderException
        Throws:
        com.identity4j.util.crypt.EncoderException
      • supportsOptimisedCheckCredentials

        public boolean supportsOptimisedCheckCredentials()
        Overrides:
        supportsOptimisedCheckCredentials in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
      • checkCredentialsOptimised

        public boolean checkCredentialsOptimised​(String username,
                                                 String remoteIdentifier,
                                                 char[] password)
                                          throws com.identity4j.connector.exception.ConnectorException
        Overrides:
        checkCredentialsOptimised in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • areCredentialsValid

        protected boolean areCredentialsValid​(com.identity4j.connector.principal.Identity identity,
                                              char[] password)
                                       throws com.identity4j.connector.exception.ConnectorException
        Overrides:
        areCredentialsValid in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • changePassword

        protected void changePassword​(com.identity4j.connector.principal.Identity identity,
                                      char[] oldPassword,
                                      char[] password)
        Overrides:
        changePassword in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
      • isIncluded

        protected boolean isIncluded​(Name dn)
      • updateIdentity

        public void updateIdentity​(com.identity4j.connector.principal.Identity identity)
                            throws com.identity4j.connector.exception.ConnectorException
        Specified by:
        updateIdentity in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        updateIdentity in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • isExcludeForUserUpdate

        protected boolean isExcludeForUserUpdate​(String attributeName)
      • processUserAttributes

        protected void processUserAttributes​(List<ModificationItem> modificationItems,
                                             com.identity4j.connector.principal.Identity previousState,
                                             com.identity4j.connector.principal.Identity newState)
      • setPassword

        protected void setPassword​(com.identity4j.connector.principal.Identity identity,
                                   char[] password,
                                   boolean forcePasswordChangeAtLogon,
                                   com.identity4j.connector.Connector.PasswordResetType type)
                            throws com.identity4j.connector.exception.ConnectorException
        Overrides:
        setPassword in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • getOrganizationalUnits

        public Iterator<DirectoryOU> getOrganizationalUnits()
                                                     throws com.identity4j.connector.exception.ConnectorException,
                                                            IOException
        Throws:
        com.identity4j.connector.exception.ConnectorException
        IOException
      • getIdentityByName

        public final com.identity4j.connector.principal.Identity getIdentityByName​(String identityName)
                                                                            throws com.identity4j.connector.exception.PrincipalNotFoundException,
                                                                                   com.identity4j.connector.exception.ConnectorException
        Specified by:
        getIdentityByName in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        getIdentityByName in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.PrincipalNotFoundException
        com.identity4j.connector.exception.ConnectorException
      • getIdentityByGuid

        public final com.identity4j.connector.principal.Identity getIdentityByGuid​(String identityGuid)
                                                                            throws com.identity4j.connector.exception.PrincipalNotFoundException,
                                                                                   com.identity4j.connector.exception.ConnectorException
        Specified by:
        getIdentityByGuid in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        getIdentityByGuid in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.PrincipalNotFoundException
        com.identity4j.connector.exception.ConnectorException
      • allIdentities

        public final Iterator<com.identity4j.connector.principal.Identity> allIdentities()
                                                                                  throws com.identity4j.connector.exception.ConnectorException
        Specified by:
        allIdentities in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • buildRoleFilter

        protected Filter buildRoleFilter​(String roleName,
                                         boolean isWildcard)
      • buildGuidFilter

        protected Filter buildGuidFilter​(String identityGuid)
      • buildIdentityFilter

        protected Filter buildIdentityFilter​(String identityName)
      • getIdentities

        public Iterator<com.identity4j.connector.principal.Identity> getIdentities​(Filter filter)
      • isIncluded

        protected boolean isIncluded​(com.identity4j.connector.principal.Role role)
      • getRoleByName

        public final com.identity4j.connector.principal.Role getRoleByName​(String roleName)
                                                                    throws com.identity4j.connector.exception.PrincipalNotFoundException,
                                                                           com.identity4j.connector.exception.ConnectorException
        Specified by:
        getRoleByName in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Overrides:
        getRoleByName in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.PrincipalNotFoundException
        com.identity4j.connector.exception.ConnectorException
      • allRoles

        public final Iterator<com.identity4j.connector.principal.Role> allRoles()
                                                                         throws com.identity4j.connector.exception.ConnectorException
        Specified by:
        allRoles in interface com.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
        Throws:
        com.identity4j.connector.exception.ConnectorException
      • getRoles

        protected Iterator<com.identity4j.connector.principal.Role> getRoles()
      • getRoles

        protected Iterator<com.identity4j.connector.principal.Role> getRoles​(Filter filter,
                                                                             boolean applyFilters)
      • getAttributeValue

        protected final String getAttributeValue​(Name dn,
                                                 String attributeName)
      • onOpen

        protected void onOpen​(P parameters)
        Specified by:
        onOpen in class com.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
      • getBrowseableNodes

        public Iterator<com.identity4j.connector.BrowseNode> getBrowseableNodes​(com.identity4j.connector.BrowseNode parent)
        Specified by:
        getBrowseableNodes in interface com.identity4j.connector.BrowseableConnector<P extends AbstractDirectoryConfiguration>