Class AbstractDirectoryConnector<P extends AbstractDirectoryConfiguration>
- java.lang.Object
-
- com.identity4j.connector.AbstractConnector<P>
-
- com.identity4j.connector.jndi.directory.AbstractDirectoryConnector<P>
-
- 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 Summary
Fields Modifier and Type Field Description protected static Set<com.identity4j.connector.ConnectorCapability>capabilitiesstatic StringCOMMON_NAME_ATTRIBUTEprotected static Iterator<com.identity4j.connector.principal.Identity>IDENTITY_ITERATORprotected LdapServiceldapServicestatic StringOBJECT_CLASS_ATTRIBUTEstatic StringOU_ATTRIBUTEprotected static Iterator<com.identity4j.connector.principal.Role>ROLE_ITERATORprotected SocketFactorysocketFactorystatic StringWILDCARD_SEARCH
-
Constructor Summary
Constructors Constructor Description AbstractDirectoryConnector()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Iterator<com.identity4j.connector.principal.Identity>allIdentities()Iterator<com.identity4j.connector.principal.Role>allRoles()protected booleanareCredentialsValid(com.identity4j.connector.principal.Identity identity, char[] password)protected voidassignRole(LdapName userDn, com.identity4j.connector.principal.Role role)protected FilterbuildGuidFilter(String identityGuid)protected FilterbuildIdentityFilter(String identityName)protected FilterbuildRoleFilter(String roleName, boolean isWildcard)protected voidchangePassword(com.identity4j.connector.principal.Identity identity, char[] oldPassword, char[] password)booleancheckCredentialsOptimised(String username, String remoteIdentifier, char[] password)protected voidcheckNamingException(String errorText, NamingException nme, com.identity4j.connector.principal.Principal principal)protected voidcheckOtherCreationExceptions(com.identity4j.connector.principal.Identity identity, Exception e)protected SearchControlsconfigureRoleSearchControls(SearchControls searchControls)protected SearchControlsconfigureSearchControls(SearchControls searchControls)com.identity4j.connector.principal.IdentitycreateIdentity(com.identity4j.connector.principal.Identity identity, char[] password)com.identity4j.connector.principal.IdentitycreateIdentity(com.identity4j.connector.principal.Identity identity, com.identity4j.connector.PasswordCreationCallback passwordCallback, boolean forceChange)voiddeleteIdentity(String principalName)voiddeleteRole(String roleName)protected voidfinaliseCreate(DirectoryIdentity directoryIdentity, boolean forceChange)protected StringfinaliseCreate(com.identity4j.connector.principal.Identity identity, String principalName, List<Attribute> attributes)protected Collection<String>getAttributesReservedForCreation()protected StringgetAttributeValue(Name dn, String attributeName)Iterator<com.identity4j.connector.BrowseNode>getBrowseableNodes(com.identity4j.connector.BrowseNode parent)protected StringgetByteValue(String attributeName, Attributes attributes)Set<com.identity4j.connector.ConnectorCapability>getCapabilities()protected intgetCode(NamingException nme)protected Collection<String>getCoreIdentityAttributes()protected List<ModificationItem>getCreationPasswordModificationItems(char[] password, DirectoryConfiguration config)protected StringgetEmailAttribute()Iterator<com.identity4j.connector.principal.Identity>getIdentities(Filter filter)com.identity4j.connector.principal.IdentitygetIdentityByGuid(String identityGuid)com.identity4j.connector.principal.IdentitygetIdentityByName(String identityName)protected List<String>getIdentityCreationObjectClasses(com.identity4j.connector.principal.Identity identity)protected StringgetMessage(NamingException nme)protected StringgetMobileAttribute()Iterator<DirectoryOU>getOrganizationalUnits()protected StringgetReason(NamingException nme)com.identity4j.connector.principal.RolegetRoleByName(String roleName)protected Iterator<com.identity4j.connector.principal.Role>getRoles()protected Iterator<com.identity4j.connector.principal.Role>getRoles(Filter filter, boolean applyFilters)protected NamegetRootDn()SocketFactorygetSocketFactory()protected booleanisExcludeForUserUpdate(String attributeName)protected booleanisIncluded(com.identity4j.connector.principal.Role role)protected booleanisIncluded(String dn)protected booleanisIncluded(Name dn)booleanisOpen()booleanisReadOnly()protected com.identity4j.connector.principal.IdentitymapIdentity(SearchResult result)protected com.identity4j.connector.principal.RolemapRole(SearchResult result)protected voidonClose()protected voidonOpen(P parameters)protected StringprocessNamingException(NamingException nme)protected StringprocessNamingException(NamingException nme, com.identity4j.connector.Connector.PasswordResetType type, com.identity4j.connector.principal.Principal pricipal)protected voidprocessUserAttributes(List<ModificationItem> modificationItems, com.identity4j.connector.principal.Identity previousState, com.identity4j.connector.principal.Identity newState)protected voidrevokeRole(LdapName userDn, com.identity4j.connector.principal.Role role)protected voidsetPassword(com.identity4j.connector.principal.Identity identity, char[] password, boolean forcePasswordChangeAtLogon, com.identity4j.connector.Connector.PasswordResetType type)voidsetSocketFactory(SocketFactory socketFactory)booleansupportsOptimisedCheckCredentials()voidupdateIdentity(com.identity4j.connector.principal.Identity identity)-
Methods inherited from class com.identity4j.connector.AbstractConnector
allIdentities, allRoles, assertGuid, assertPasswordChangeIsAllowed, changePassword, checkCredentials, close, count, countIdentities, countIdentities, countRoles, countRoles, createRole, disableIdentity, enableIdentity, getAttribute, getConfiguration, getPasswordCharacteristics, getPasswordPolicies, getPrincipal, install, isIdentityNameInUse, isRoleNameInUse, lockIdentity, logon, open, reopen, setAttribute, setPassword, setPassword, setPassword, startAuthentication, unlockIdentity, updateRole
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.identity4j.connector.Connector
allIdentities, allRoles, changePassword, checkCredentials, countIdentities, countIdentities, countRoles, countRoles, createRole, disableIdentity, enableIdentity, getAttribute, getConfiguration, getPasswordCharacteristics, getPasswordPolicies, install, isIdentityNameInUse, isRoleNameInUse, lockIdentity, logon, open, reopen, setAttribute, setPassword, setPassword, startAuthentication, unlockIdentity, updateRole
-
-
-
-
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
-
WILDCARD_SEARCH
public static final String WILDCARD_SEARCH
- See Also:
- Constant Field Values
-
OBJECT_CLASS_ATTRIBUTE
public static final String OBJECT_CLASS_ATTRIBUTE
- See Also:
- Constant Field Values
-
OU_ATTRIBUTE
public static final String OU_ATTRIBUTE
- See Also:
- Constant Field Values
-
COMMON_NAME_ATTRIBUTE
public static final String COMMON_NAME_ATTRIBUTE
- See Also:
- Constant Field Values
-
ldapService
protected LdapService ldapService
-
socketFactory
protected SocketFactory socketFactory
-
capabilities
protected static Set<com.identity4j.connector.ConnectorCapability> capabilities
-
-
Method Detail
-
getSocketFactory
public SocketFactory getSocketFactory()
-
setSocketFactory
public void setSocketFactory(SocketFactory socketFactory)
- Specified by:
setSocketFactoryin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
setSocketFactoryin classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
-
deleteIdentity
public void deleteIdentity(String principalName) throws com.identity4j.connector.exception.ConnectorException
- Specified by:
deleteIdentityin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
deleteIdentityin classcom.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:
deleteRolein interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
deleteRolein classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>- Throws:
com.identity4j.connector.exception.ConnectorException
-
getCapabilities
public Set<com.identity4j.connector.ConnectorCapability> getCapabilities()
- Specified by:
getCapabilitiesin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
-
isOpen
public boolean isOpen()
- Specified by:
isOpenin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>
-
onClose
protected void onClose()
- Overrides:
onClosein classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
-
isReadOnly
public boolean isReadOnly()
- Specified by:
isReadOnlyin interfacecom.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:
createIdentityin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
createIdentityin classcom.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:
createIdentityin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
createIdentityin classcom.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()
-
assignRole
protected void assignRole(LdapName userDn, com.identity4j.connector.principal.Role role) throws NamingException, IOException
- Throws:
NamingExceptionIOException
-
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:
supportsOptimisedCheckCredentialsin classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
-
checkCredentialsOptimised
public boolean checkCredentialsOptimised(String username, String remoteIdentifier, char[] password) throws com.identity4j.connector.exception.ConnectorException
- Overrides:
checkCredentialsOptimisedin classcom.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:
areCredentialsValidin classcom.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:
changePasswordin classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
-
isIncluded
protected boolean isIncluded(String dn) throws InvalidNameException
- Throws:
InvalidNameException
-
isIncluded
protected boolean isIncluded(Name dn)
-
updateIdentity
public void updateIdentity(com.identity4j.connector.principal.Identity identity) throws com.identity4j.connector.exception.ConnectorException- Specified by:
updateIdentityin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
updateIdentityin classcom.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)
-
revokeRole
protected void revokeRole(LdapName userDn, com.identity4j.connector.principal.Role role) throws NamingException, IOException
- Throws:
NamingExceptionIOException
-
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:
setPasswordin classcom.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.ConnectorExceptionIOException
-
getIdentityByName
public final com.identity4j.connector.principal.Identity getIdentityByName(String identityName) throws com.identity4j.connector.exception.PrincipalNotFoundException, com.identity4j.connector.exception.ConnectorException
- Specified by:
getIdentityByNamein interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
getIdentityByNamein classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>- Throws:
com.identity4j.connector.exception.PrincipalNotFoundExceptioncom.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:
getIdentityByGuidin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
getIdentityByGuidin classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>- Throws:
com.identity4j.connector.exception.PrincipalNotFoundExceptioncom.identity4j.connector.exception.ConnectorException
-
allIdentities
public final Iterator<com.identity4j.connector.principal.Identity> allIdentities() throws com.identity4j.connector.exception.ConnectorException
- Specified by:
allIdentitiesin interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Throws:
com.identity4j.connector.exception.ConnectorException
-
getIdentities
public Iterator<com.identity4j.connector.principal.Identity> getIdentities(Filter filter)
-
mapIdentity
protected com.identity4j.connector.principal.Identity mapIdentity(SearchResult result) throws NamingException
- Throws:
NamingException
-
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:
getRoleByNamein interfacecom.identity4j.connector.Connector<P extends AbstractDirectoryConfiguration>- Overrides:
getRoleByNamein classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>- Throws:
com.identity4j.connector.exception.PrincipalNotFoundExceptioncom.identity4j.connector.exception.ConnectorException
-
allRoles
public final Iterator<com.identity4j.connector.principal.Role> allRoles() throws com.identity4j.connector.exception.ConnectorException
- Specified by:
allRolesin interfacecom.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)
-
mapRole
protected com.identity4j.connector.principal.Role mapRole(SearchResult result) throws NamingException
- Throws:
NamingException
-
configureSearchControls
protected SearchControls configureSearchControls(SearchControls searchControls)
-
configureRoleSearchControls
protected SearchControls configureRoleSearchControls(SearchControls searchControls)
-
getByteValue
protected final String getByteValue(String attributeName, Attributes attributes)
-
onOpen
protected void onOpen(P parameters)
- Specified by:
onOpenin classcom.identity4j.connector.AbstractConnector<P extends AbstractDirectoryConfiguration>
-
processNamingException
protected String processNamingException(NamingException nme)
-
getReason
protected String getReason(NamingException nme)
-
getCode
protected int getCode(NamingException nme)
-
getMessage
protected String getMessage(NamingException nme)
-
getBrowseableNodes
public Iterator<com.identity4j.connector.BrowseNode> getBrowseableNodes(com.identity4j.connector.BrowseNode parent)
- Specified by:
getBrowseableNodesin interfacecom.identity4j.connector.BrowseableConnector<P extends AbstractDirectoryConfiguration>
-
-