Package com.atlassian.crowd.directory
Class AppleOpenDirectory
java.lang.Object
com.atlassian.crowd.directory.SpringLDAPConnector
com.atlassian.crowd.directory.RFC2307Directory
com.atlassian.crowd.directory.Rfc2307
com.atlassian.crowd.directory.AppleOpenDirectory
- All Implemented Interfaces:
LDAPDirectory
,RemoteDirectory
,Attributes
Provides limited support for Apple's Open Directory. It's a customised version of OpenLDAP, using an RFC230-alike
schema.
It has some quirks, and is not particularly well documented. We've been unable to determine exactly how to change user passwords.
-
Field Summary
Fields inherited from class com.atlassian.crowd.directory.SpringLDAPConnector
attributes, contextSource, contextSourceTransactionManager, DEFAULT_PAGE_SIZE, eventPublisher, ldapPropertiesMapper, ldapQueryTranslater, ldapTemplate, nameConverter, searchDN
-
Constructor Summary
ConstructorsConstructorDescriptionAppleOpenDirectory
(LDAPQueryTranslater ldapQueryTranslater, com.atlassian.event.api.EventPublisher eventPublisher, InstanceFactory instanceFactory, PasswordEncoderFactory passwordEncoderFactory, LdapContextSourceProvider ldapContextSourceProvider) -
Method Summary
Modifier and TypeMethodDescriptionReturns the properties used to set up the Ldap ContextSource.Returns a descriptive name for the type of directory.static String
void
updateUserCredential
(String name, PasswordCredential credential) We don't support changing passwords in Open Directory, mainly because we can't figure out how.Methods inherited from class com.atlassian.crowd.directory.Rfc2307
addGroup, addGroupToGroup, addUser, addUser, addUserToGroup, getCredentialEncoder, getNewUserDirectorySpecificAttributes, removeGroup, removeGroupFromGroup, removeUser, removeUserFromGroup, renameGroup, renameUser, updateGroup, updateUser
Methods inherited from class com.atlassian.crowd.directory.RFC2307Directory
getCustomGroupAttributeMappers, getCustomUserAttributeMappers, getMemberOnlyGroupAttributeMappers, getMemberships, isGroupDirectGroupMember, isUserDirectGroupMember, searchGroupRelationshipsWithGroupTypeSpecified, supportsNestedGroups, supportsPasswordExpiration
Methods inherited from class com.atlassian.crowd.directory.SpringLDAPConnector
addDefaultSnToUserAttributes, addDefaultValueToUserAttributesForAttribute, authenticate, avatarMapper, countDirectMembersOfGroup, createModificationItem, expireAllPasswords, findEntityByDN, findEntityByDN, findEntityByDN, findGroupByName, findGroupByNameAndType, findGroupWithAttributesByName, findUserByExternalId, findUserByName, findUserWithAttributesByName, getAttributeAsBoolean, getAttributeAsLong, getAuthoritativeDirectory, getContextSource, getDirectoryId, getGroupContextMapper, getGroupContextMapper, getInitialGroupMemberDN, getKeys, getLdapPropertiesMapper, getNewGroupAttributes, getNewGroupDirectorySpecificAttributes, getNewUserAttributes, getRequiredCustomGroupAttributeMappers, getSearchControls, getSearchDN, getUserAvatarByName, getUserModificationItems, getValue, getValues, isEmpty, isRolesDisabled, pageSearchResults, postprocessGroup, postprocessGroups, removeGroupAttributes, removeUserAttributes, searchEntities, searchEntitiesWithRequestControls, searchGroupObjects, searchGroupObjectsOfSpecifiedGroupType, searchGroupRelationships, searchGroups, searchUserObjects, searchUsers, searchUsers, setAttributes, setDirectoryId, setLdapPropertiesMapperAttributes, storeGroupAttributes, storeUserAttributes, supportsInactiveAccounts, supportsSettingEncryptedCredential, testConnection, typedEntityNotFoundException
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.atlassian.crowd.directory.RemoteDirectory
getLocallyFilteredGroupNames, updateUserFromRemoteDirectory, userAuthenticated
-
Constructor Details
-
AppleOpenDirectory
public AppleOpenDirectory(LDAPQueryTranslater ldapQueryTranslater, com.atlassian.event.api.EventPublisher eventPublisher, InstanceFactory instanceFactory, PasswordEncoderFactory passwordEncoderFactory, LdapContextSourceProvider ldapContextSourceProvider)
-
-
Method Details
-
getStaticDirectoryType
-
getDescriptiveName
Description copied from interface:RemoteDirectory
Returns a descriptive name for the type of directory.- Specified by:
getDescriptiveName
in interfaceRemoteDirectory
- Overrides:
getDescriptiveName
in classRfc2307
- Returns:
- descriptive name.
-
getBaseEnvironmentProperties
Returns the properties used to set up the Ldap ContextSource. Overridden to make sure CRAM-MD5 is used for authentication - for security reasons, Open Directory does not support Simple Authentication.- Overrides:
getBaseEnvironmentProperties
in classSpringLDAPConnector
- Returns:
- the properties used to set up the Ldap ContextSource.
-
updateUserCredential
public void updateUserCredential(String name, PasswordCredential credential) throws UserNotFoundException, InvalidCredentialException We don't support changing passwords in Open Directory, mainly because we can't figure out how.- Specified by:
updateUserCredential
in interfaceRemoteDirectory
- Overrides:
updateUserCredential
in classSpringLDAPConnector
- Parameters:
name
- The name of the user (username).credential
- The new credential (password).- Throws:
UserNotFoundException
- The user does not exist.InvalidCredentialException
- The supplied credential is invalid.- See Also:
-