|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.atlassian.crowd.directory.SpringLDAPConnector
com.atlassian.crowd.directory.RFC4519Directory
com.atlassian.crowd.directory.MicrosoftActiveDirectory
public class MicrosoftActiveDirectory
Microsoft Active Directory connector.
| Field Summary | |
|---|---|
static PropertyImpl<String> |
OBJECT_SID
|
static int |
UF_ACCOUNTDISABLE
|
| Fields inherited from class com.atlassian.crowd.directory.SpringLDAPConnector |
|---|
attributes, contextSource, contextSourceTransactionManager, DEFAULT_PAGE_SIZE, eventPublisher, ldapPropertiesMapper, ldapQueryTranslater, ldapTemplate, nameConverter, searchDN |
| Constructor Summary | |
|---|---|
MicrosoftActiveDirectory(ActiveDirectoryQueryTranslaterImpl activeDirectoryQueryTranslater,
com.atlassian.event.api.EventPublisher eventPublisher,
InstanceFactory instanceFactory,
PasswordHelper passwordHelper)
|
|
| Method Summary | ||
|---|---|---|
void |
addUserToGroup(String username,
String groupName)
|
|
protected byte[] |
encodePassword(PasswordCredential passwordCredential)
Converts the clear-text password to the { AD_PASSWORD_ENCODED encoding - currently UTF-16LE |
|
long |
fetchHighestCommittedUSN()
|
|
List<LDAPGroupWithAttributes> |
findAddedOrUpdatedGroupsSince(long usnChanged)
|
|
protected
|
findAddedOrUpdatedObjectsSince(long usnChange,
Name objectBaseDN,
String objectFilter,
ContextMapperWithRequiredAttributes<T> contextMapper)
|
|
List<LDAPUserWithAttributes> |
findAddedOrUpdatedUsersSince(long usnChange)
|
|
Iterable<LdapName> |
findDirectMembersOfGroup(LdapName groupDn)
This method is not part of RemoteDirectory's contract. |
|
protected Iterable<String> |
findGroupMembershipNames(MembershipQuery<String> query)
|
|
protected List<? extends LDAPGroupWithAttributes> |
findGroupMemberships(MembershipQuery<? extends LDAPGroupWithAttributes> query)
|
|
List<Tombstone> |
findGroupTombstonesSince(long usnChange)
|
|
protected List<Tombstone> |
findTombstonesSince(long usnChange,
Name objectBaseDN,
String objectClass)
|
|
protected List<LDAPUserWithAttributes> |
findUserMembersOfGroupViaMemberDN(String groupName,
GroupType groupType,
int startIndex,
int maxResults)
|
|
protected Iterable<LDAPUserWithAttributes> |
findUserMembersOfGroupViaMemberOf(String groupName,
GroupType groupType,
int startIndex,
int maxResults)
|
|
List<Tombstone> |
findUserTombstonesSince(long usnChange)
|
|
protected Map<String,String> |
getBaseEnvironmentProperties()
Returns the properties used to set up the Ldap ContextSource. |
|
protected List<AttributeMapper> |
getCustomGroupAttributeMappers()
As a minimum, this SHOULD provide an attribute mapper that maps the group members attribute (if available). |
|
protected List<AttributeMapper> |
getCustomUserAttributeMappers()
|
|
String |
getDescriptiveName()
|
|
protected String |
getInitialGroupMemberDN()
AD does not need a default container member. |
|
protected List<AttributeMapper> |
getMemberDnMappers()
|
|
protected void |
getNewGroupDirectorySpecificAttributes(Group group,
Attributes attributes)
If we want to be able to nest groups, we need to create distribution groups rather than security groups. |
|
protected void |
getNewUserDirectorySpecificAttributes(User user,
Attributes attributes)
Active Directory needs a couple of additional attributes set - the sAMAccountName (which is the account name you use to log on to Windows), and the account disabled flag. |
|
static String |
getStaticDirectoryType()
|
|
ContextMapperWithRequiredAttributes<LDAPUserWithAttributes> |
getUserContextMapper()
Returns a ContextMapper that can transform a Context into a User. |
|
protected List<ModificationItem> |
getUserModificationItems(User userTemplate,
LDAPUserWithAttributes currentUser)
|
|
boolean |
isUserDirectGroupMember(String username,
String groupName)
|
|
protected List<LDAPGroupWithAttributes> |
postprocessGroups(List<LDAPGroupWithAttributes> groups)
Perform any post-processing on groups. |
|
void |
removeGroup(String name)
|
|
void |
removeUserFromGroup(String username,
String groupName)
|
|
boolean |
supportsInactiveAccounts()
This connector supports inactive accounts while, in general, LDAP connector do not. |
|
| Methods inherited from class com.atlassian.crowd.directory.RFC4519Directory |
|---|
addDnToGroup, addGroupToGroup, findGroupMembershipsOfUserViaMemberOf, getLdapName, getMemberships, isDnDirectGroupMember, isGroupDirectGroupMember, removeDnFromGroup, removeGroupFromGroup, searchGroupRelationshipsWithGroupTypeSpecified, toGenericIterable |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int UF_ACCOUNTDISABLE
public static final PropertyImpl<String> OBJECT_SID
| Constructor Detail |
|---|
public MicrosoftActiveDirectory(ActiveDirectoryQueryTranslaterImpl activeDirectoryQueryTranslater,
com.atlassian.event.api.EventPublisher eventPublisher,
InstanceFactory instanceFactory,
PasswordHelper passwordHelper)
passwordHelper - password helper, which must not be null| Method Detail |
|---|
public static String getStaticDirectoryType()
public String getDescriptiveName()
public void removeGroup(String name)
throws GroupNotFoundException,
OperationFailedException
removeGroup in interface RemoteDirectoryremoveGroup in class SpringLDAPConnectorGroupNotFoundException
OperationFailedException
public boolean isUserDirectGroupMember(String username,
String groupName)
throws OperationFailedException
isUserDirectGroupMember in interface RemoteDirectoryisUserDirectGroupMember in class RFC4519DirectoryOperationFailedException
public void addUserToGroup(String username,
String groupName)
throws GroupNotFoundException,
OperationFailedException,
UserNotFoundException,
MembershipAlreadyExistsException
addUserToGroup in interface RemoteDirectoryaddUserToGroup in class RFC4519DirectoryGroupNotFoundException
OperationFailedException
UserNotFoundException
MembershipAlreadyExistsException
public void removeUserFromGroup(String username,
String groupName)
throws UserNotFoundException,
GroupNotFoundException,
MembershipNotFoundException,
OperationFailedException
removeUserFromGroup in interface RemoteDirectoryremoveUserFromGroup in class RFC4519DirectoryUserNotFoundException
GroupNotFoundException
MembershipNotFoundException
OperationFailedException
protected List<? extends LDAPGroupWithAttributes> findGroupMemberships(MembershipQuery<? extends LDAPGroupWithAttributes> query)
throws OperationFailedException
findGroupMemberships in class RFC4519DirectoryOperationFailedException
protected Iterable<String> findGroupMembershipNames(MembershipQuery<String> query)
throws OperationFailedException
findGroupMembershipNames in class RFC4519DirectoryOperationFailedException
protected List<LDAPUserWithAttributes> findUserMembersOfGroupViaMemberDN(String groupName,
GroupType groupType,
int startIndex,
int maxResults)
throws OperationFailedException
findUserMembersOfGroupViaMemberDN in class RFC4519DirectoryOperationFailedException
protected Iterable<LDAPUserWithAttributes> findUserMembersOfGroupViaMemberOf(String groupName,
GroupType groupType,
int startIndex,
int maxResults)
throws OperationFailedException
findUserMembersOfGroupViaMemberOf in class RFC4519DirectoryOperationFailedException
public Iterable<LdapName> findDirectMembersOfGroup(LdapName groupDn)
throws OperationFailedException
RFC4519DirectoryRemoteDirectory's contract. It is introduced by RFC4519Directory to
support RFC4519DirectoryMembershipsIterable.
findDirectMembersOfGroup in class RFC4519DirectorygroupDn - LDAP name of a group
OperationFailedException - if the operation fails for any reasonprotected String getInitialGroupMemberDN()
getInitialGroupMemberDN in class SpringLDAPConnectornull.
protected byte[] encodePassword(PasswordCredential passwordCredential)
throws InvalidCredentialException
AD_PASSWORD_ENCODED encoding - currently UTF-16LE
encodePassword in class SpringLDAPConnectorpasswordCredential - The password credential to be encoded, guaranteed to be non-null. If the subclass
supports encrypting the given passwordCredential, it should NOT do so if
PasswordCredential.isEncryptedCredential()
returns true (although it may still encode the credential to the format
required by the directory). The value of
PasswordCredential.getCredential() is also
guaranteed to be non-null.
InvalidCredentialException - if PasswordCredential.isEncryptedCredential()
returns true for the given passwordCredential or if the encoding
does not exist on this
system.
protected void getNewUserDirectorySpecificAttributes(User user,
Attributes attributes)
getNewUserDirectorySpecificAttributes in class SpringLDAPConnectoruser - attributes -
protected void getNewGroupDirectorySpecificAttributes(Group group,
Attributes attributes)
getNewGroupDirectorySpecificAttributes in class SpringLDAPConnectorgroup - attributes - protected List<AttributeMapper> getCustomUserAttributeMappers()
getCustomUserAttributeMappers in class RFC4519Directoryprotected List<AttributeMapper> getCustomGroupAttributeMappers()
SpringLDAPConnector
getCustomGroupAttributeMappers in class RFC4519Directoryprotected List<AttributeMapper> getMemberDnMappers()
getMemberDnMappers in class RFC4519Directory
protected List<LDAPGroupWithAttributes> postprocessGroups(List<LDAPGroupWithAttributes> groups)
throws OperationFailedException
SpringLDAPConnector
postprocessGroups in class SpringLDAPConnectorgroups - to post-process
OperationFailedException - if processing encounters a problem with the underlying directoryprotected Map<String,String> getBaseEnvironmentProperties()
SpringLDAPConnector
getBaseEnvironmentProperties in class SpringLDAPConnector
public long fetchHighestCommittedUSN()
throws OperationFailedException
OperationFailedException
public List<LDAPUserWithAttributes> findAddedOrUpdatedUsersSince(long usnChange)
throws OperationFailedException
OperationFailedException
public List<LDAPGroupWithAttributes> findAddedOrUpdatedGroupsSince(long usnChanged)
throws OperationFailedException
OperationFailedException
public List<Tombstone> findUserTombstonesSince(long usnChange)
throws OperationFailedException
OperationFailedException
public List<Tombstone> findGroupTombstonesSince(long usnChange)
throws OperationFailedException
OperationFailedException
protected <T> List<T> findAddedOrUpdatedObjectsSince(long usnChange,
Name objectBaseDN,
String objectFilter,
ContextMapperWithRequiredAttributes<T> contextMapper)
throws OperationFailedException
OperationFailedException
protected List<Tombstone> findTombstonesSince(long usnChange,
Name objectBaseDN,
String objectClass)
throws OperationFailedException
OperationFailedExceptionpublic ContextMapperWithRequiredAttributes<LDAPUserWithAttributes> getUserContextMapper()
SpringLDAPConnector
getUserContextMapper in class SpringLDAPConnector
protected List<ModificationItem> getUserModificationItems(User userTemplate,
LDAPUserWithAttributes currentUser)
getUserModificationItems in class SpringLDAPConnectorpublic boolean supportsInactiveAccounts()
supportsInactiveAccounts in interface RemoteDirectorysupportsInactiveAccounts in class SpringLDAPConnectortrue
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||