com.atlassian.crowd.integration.directory.connector
Class AppleOpenDirectory

java.lang.Object
  extended by com.atlassian.crowd.integration.directory.connector.SpringLDAPConnector
      extended by com.atlassian.crowd.integration.directory.connector.RFC2307Directory
          extended by com.atlassian.crowd.integration.directory.connector.Rfc2307
              extended by com.atlassian.crowd.integration.directory.connector.AppleOpenDirectory
All Implemented Interfaces:
LDAPDirectory, RemoteDirectory, AttributeAware, org.springframework.context.ApplicationContextAware

public class AppleOpenDirectory
extends Rfc2307

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


Field Summary
 
Fields inherited from class com.atlassian.crowd.integration.directory.connector.SpringLDAPConnector
applicationContext, attributes, contextSource, DEFAULT_PAGE_SIZE, eventManager, ldapPropertiesMapper, ldapQueryTranslater, ldapTemplate, logger, nameConverter, searchDN
 
Constructor Summary
AppleOpenDirectory()
           
 
Method Summary
protected  java.util.Hashtable<java.lang.String,java.lang.String> getBaseEnvironmentProperties()
          Returns the properties used to set up the Ldap ContextSource.
 java.lang.String getDescriptiveName()
          Returns a descriptive name for the type of directory.
static java.lang.String getStaticDirectoryType()
           
 void updateUserCredential(java.lang.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.integration.directory.connector.Rfc2307
addGroup, addGroupToGroup, addUser, addUserToGroup, encodePassword, getNewUserDirectorySpecificAttributes, removeGroup, removeGroupFromGroup, removeUser, removeUserFromGroup, renameGroup, renameUser, updateGroup, updateUser
 
Methods inherited from class com.atlassian.crowd.integration.directory.connector.RFC2307Directory
getCustomGroupAttributeMappers, getCustomUserAttributeMappers, isGroupDirectGroupMember, isUserDirectGroupMember, searchGroupRelationshipsWithGroupTypeSpecified, supportsNestedGroups
 
Methods inherited from class com.atlassian.crowd.integration.directory.connector.SpringLDAPConnector
addDefaultSnToUserAttributes, addDefaultValueToUserAttributesForAttribute, asLdapName, authenticate, findEntityByDN, findEntityByDN, findGroupByName, findGroupByNameAndType, findGroupWithAttributesByName, findUserByName, findUserWithAttributesByName, getAttribute, getAttributeAsBoolean, getAttributeAsLong, getAttributeNames, getAttributes, getContextSource, getDirectoryId, getEncoder, getGroupContextMapper, getInitialGroupMemberDN, getLdapPropertiesMapper, getNewGroupAttributes, getNewGroupDirectorySpecificAttributes, getNewUserAttributes, getSearchDN, getStandardisedDN, getSubTreeSearchControl, getUserContextMapper, hasAttribute, pageSearchResults, removeGroupAttributes, removeUserAttributes, searchEntities, searchEntitiesWithRequestControls, searchGroupObjects, searchGroupObjectsOfSpecifiedGroupType, searchGroupRelationships, searchGroups, searchUserObjects, searchUsers, setApplicationContext, setAttributes, setDirectoryId, setEventManager, setLdapQueryTranslater, storeGroupAttributes, storeUserAttributes, testConnection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AppleOpenDirectory

public AppleOpenDirectory()
Method Detail

getStaticDirectoryType

public static java.lang.String getStaticDirectoryType()

getDescriptiveName

public java.lang.String getDescriptiveName()
Description copied from interface: RemoteDirectory
Returns a descriptive name for the type of directory.

Specified by:
getDescriptiveName in interface RemoteDirectory
Overrides:
getDescriptiveName in class Rfc2307
Returns:
descriptive name.

getBaseEnvironmentProperties

protected java.util.Hashtable<java.lang.String,java.lang.String> 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 class SpringLDAPConnector
Returns:

updateUserCredential

public void updateUserCredential(java.lang.String name,
                                 PasswordCredential credential)
                          throws ObjectNotFoundException,
                                 InvalidCredentialException
We don't support changing passwords in Open Directory, mainly because we can't figure out how.

Specified by:
updateUserCredential in interface RemoteDirectory
Overrides:
updateUserCredential in class SpringLDAPConnector
Parameters:
name -
credential -
Throws:
ObjectNotFoundException
InvalidCredentialException


Copyright © 2009 Atlassian Pty Ltd. All Rights Reserved.