Package com.atlassian.crowd.directory
Class CachingDirectory
java.lang.Object
com.atlassian.crowd.directory.AbstractInternalDirectory
com.atlassian.crowd.directory.CachingDirectory
- All Implemented Interfaces:
FastEntityCountProvider,InternalRemoteDirectory,MultiValuesQueriesSupport,RemoteDirectory,Attributes
This InternalDirectory is used for locally caching Users and Groups from an external Directory.
- See Also:
-
Field Summary
Fields inherited from class com.atlassian.crowd.directory.AbstractInternalDirectory
ATTRIBUTE_PASSWORD_COMPLEXITY_MESSAGE, ATTRIBUTE_PASSWORD_EXPIRATION_NOTIFICATION_PERIODS, ATTRIBUTE_PASSWORD_HISTORY_COUNT, ATTRIBUTE_PASSWORD_MAX_ATTEMPTS, ATTRIBUTE_PASSWORD_MAX_CHANGE_TIME, ATTRIBUTE_PASSWORD_MINIMUM_DIGITS, ATTRIBUTE_PASSWORD_MINIMUM_LENGTH, ATTRIBUTE_PASSWORD_MINIMUM_LOWERCASE, ATTRIBUTE_PASSWORD_MINIMUM_RULES_MATCHED, ATTRIBUTE_PASSWORD_MINIMUM_SCORE, ATTRIBUTE_PASSWORD_MINIMUM_SPECIAL_CHARACTERS, ATTRIBUTE_PASSWORD_MINIMUM_UPPERCASE, ATTRIBUTE_PASSWORD_POLICY_PRESET, ATTRIBUTE_PASSWORD_REGEX, ATTRIBUTE_USER_ENCRYPTION_METHOD, attributes, CHARACTER_CLASS_CONSTRAINT_ATTRIBUTES, DESCRIPTIVE_NAME, directoryDao, directoryId, groupDao, internalDirectoryUtils, membershipDao, passwordEncoderFactory, tombstoneDao, userDao -
Constructor Summary
ConstructorsConstructorDescriptionCachingDirectory(InternalDirectoryUtils internalDirectoryUtils, PasswordEncoderFactory passwordEncoderFactory, DirectoryDao directoryDao, UserDao userDao, GroupDao groupDao, MembershipDao membershipDao, TombstoneDao tombstoneDao, PasswordConstraintsLoader passwordConstraints) -
Method Summary
Modifier and TypeMethodDescriptionaddAllGroups(Set<GroupTemplate> groups) addAllUsersToGroup(Set<String> userNames, String groupName) addLocalGroup(GroupTemplate group) addUser(UserTemplate user, PasswordCredential credential) Adds a user with no special added logic.addUser(UserTemplateWithAttributes user, PasswordCredential credential) Adds a user without modifying it, including storing its attributes.booleanCaching directories can be configured to support local user statuses.removeGroupsFromGroup(Collection<String> childGroupNames, String groupName) removeUsersFromGroup(Set<String> usernames, String groupName) updateUser(UserTemplate user) Methods inherited from class com.atlassian.crowd.directory.AbstractInternalDirectory
addAllGroupsToGroup, addGroup, addGroupToGroup, addUserToGroup, addUserToGroups, authenticate, calculatePostPasswordUpdateAttributes, countDirectMembersOfGroup, currentPrincipalInvalidPasswordAttempts, encryptedCredential, expireAllPasswords, findGroupByName, findGroupWithAttributesByName, findUserByExternalId, findUserByName, findUserWithAttributesByName, forceRenameUser, getAllUserExternalIds, getAuthoritativeDirectory, getDescriptiveName, getDirectoryId, getEncoder, getGroupCount, getKeys, getMemberships, getPasswordConstraints, getUserAvatarByName, getUserCount, getValue, getValues, isEmpty, isGroupDirectGroupMember, isRolesDisabled, isUserDirectGroupMember, removeAllGroups, removeAllUsers, removeGroup, removeGroupAttributes, removeGroupFromGroup, removeUser, removeUserAttributes, removeUserFromGroup, renameGroup, renameUser, requiresPasswordChange, searchGroupRelationships, searchGroupRelationshipsGroupedByName, searchGroups, searchUsers, setAttributes, setDirectoryId, storeGroupAttributes, storeUserAttributes, supportsInactiveAccounts, supportsNestedGroups, supportsPasswordExpiration, supportsSettingEncryptedCredential, testConnection, updateGroup, updateUserCredential, userAuthenticatedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.atlassian.crowd.directory.RemoteDirectory
getLocallyFilteredGroupNames, updateUserFromRemoteDirectory
-
Constructor Details
-
CachingDirectory
public CachingDirectory(InternalDirectoryUtils internalDirectoryUtils, PasswordEncoderFactory passwordEncoderFactory, DirectoryDao directoryDao, UserDao userDao, GroupDao groupDao, MembershipDao membershipDao, TombstoneDao tombstoneDao, PasswordConstraintsLoader passwordConstraints)
-
-
Method Details
-
addUser
public User addUser(UserTemplate user, PasswordCredential credential) throws InvalidCredentialException, InvalidUserException, UserAlreadyExistsException, OperationFailedException Adds a user with no special added logic.- Parameters:
user- template of the user to add.credential- password. May be null, since JIRA creates a user in two steps- Returns:
- added user.
- Throws:
InvalidCredentialException- the password does not match the regular expression standard defined by the directory.InvalidUserExceptionUserAlreadyExistsExceptionOperationFailedException
-
addUser
public UserWithAttributes addUser(UserTemplateWithAttributes user, PasswordCredential credential) throws InvalidCredentialException, InvalidUserException, UserAlreadyExistsException, OperationFailedException Adds a user without modifying it, including storing its attributes.- Specified by:
addUserin interfaceRemoteDirectory- Specified by:
addUserin classAbstractInternalDirectory- Parameters:
user- template of the user to add.credential- password. May be null, since JIRA creates a user in two steps- Returns:
- added user.
- Throws:
InvalidCredentialException- the password does not match the regular expression standard defined by the directory.InvalidUserExceptionUserAlreadyExistsExceptionOperationFailedException
-
addLocalGroup
public Group addLocalGroup(GroupTemplate group) throws InvalidGroupException, OperationFailedException - Specified by:
addLocalGroupin interfaceInternalRemoteDirectory- Specified by:
addLocalGroupin classAbstractInternalDirectory- Throws:
InvalidGroupExceptionOperationFailedException
-
addAllUsers
-
addAllGroups
-
addAllUsersToGroup
public BatchResult<String> addAllUsersToGroup(Set<String> userNames, String groupName) throws GroupNotFoundException - Throws:
GroupNotFoundException
-
removeUsersFromGroup
public BatchResult<String> removeUsersFromGroup(Set<String> usernames, String groupName) throws GroupNotFoundException - Specified by:
removeUsersFromGroupin interfaceInternalRemoteDirectory- Overrides:
removeUsersFromGroupin classAbstractInternalDirectory- Throws:
GroupNotFoundException
-
removeGroupsFromGroup
public BatchResult<String> removeGroupsFromGroup(Collection<String> childGroupNames, String groupName) throws GroupNotFoundException - Specified by:
removeGroupsFromGroupin interfaceInternalRemoteDirectory- Overrides:
removeGroupsFromGroupin classAbstractInternalDirectory- Throws:
GroupNotFoundException
-
updateUser
-
isLocalUserStatusEnabled
public boolean isLocalUserStatusEnabled()Caching directories can be configured to support local user statuses. By default, local user statuses are disabled.- Returns:
- true if the local user status configuration is enabled
- See Also:
-
com.atlassian.crowd.upgrade.tasks.UpgradeTask622
-