com.atlassian.crowd.integration.rest.service
Class RestCrowdClient

java.lang.Object
  extended by com.atlassian.crowd.integration.rest.service.RestCrowdClient
All Implemented Interfaces:
CrowdClient

public class RestCrowdClient
extends Object
implements CrowdClient

This is the Crowd Client to access REST services on a remote Crowd Server.


Constructor Summary
RestCrowdClient(ClientProperties clientProperties)
          Constructs a new REST Crowd Client instance.
 
Method Summary
 void addGroup(Group group)
          Adds a group to the remote Crowd server.
 void addGroupToGroup(String childGroup, String parentGroup)
          Adds a group to a group.
 void addUser(User user, PasswordCredential passwordCredential)
          Adds a new User to the remote Crowd server.
 void addUserToGroup(String username, String groupName)
          Adds a user to a group.
 String authenticateSSOUser(UserAuthenticationContext userAuthenticationContext)
          Authenticates a Single-Sign-On (SSO) User.
 String authenticateSSOUser(UserAuthenticationContext userAuthenticationContext, long duration)
          Authenticates a Single-Sign-On (SSO) User.
 String authenticateSSOUserWithoutValidatingPassword(UserAuthenticationContext userAuthenticationContext)
          Authenticates a Single-Sign-On (SSO) User without validating password.
 User authenticateUser(String username, String password)
          Authenticates a user with the server.
 User findUserFromSSOToken(String token)
          Returns the user from the specified user token.
 List<Group> getChildGroupsOfGroup(String groupName, int startIndex, int maxResults)
          Searches for groups who are direct members of a group.
 CookieConfiguration getCookieConfiguration()
          Returns the cookie configuration.
 String getCurrentEventToken()
          Returns a token that can be used for querying events that have happened after the token was generated.
 Group getGroup(String name)
          Get a group by name.
 List<Group> getGroupsForNestedUser(String userName, int startIndex, int maxResults)
          Searches for groups that a user is a nested member of.
 List<Group> getGroupsForUser(String userName, int startIndex, int maxResults)
          Searches for groups that a user is a direct member of.
 GroupWithAttributes getGroupWithAttributes(String name)
          Gets a group with attributes by name.
 Iterable<Membership> getMemberships()
          Gets the full group membership details for all groups with all direct user members and child groups.
 List<String> getNamesOfChildGroupsOfGroup(String groupName, int startIndex, int maxResults)
          Searches for groups who are direct members of a group, returning the group names.
 List<String> getNamesOfGroupsForNestedUser(String userName, int startIndex, int maxResults)
          Searches for groups that a user is a nested member of, returning the group names.
 List<String> getNamesOfGroupsForUser(String userName, int startIndex, int maxResults)
          Searches for groups that a user is a direct member of, returning the group names.
 List<String> getNamesOfNestedChildGroupsOfGroup(String groupName, int startIndex, int maxResults)
          Searches for groups who are nested members of a group, returning the group names.
 List<String> getNamesOfNestedUsersOfGroup(String groupName, int startIndex, int maxResults)
          Searches for users who are nested members of a group, returning the user names.
 List<String> getNamesOfParentGroupsForGroup(String groupName, int startIndex, int maxResults)
          Searches for groups that a group is a direct member of, returning the group names.
 List<String> getNamesOfParentGroupsForNestedGroup(String groupName, int startIndex, int maxResults)
          Searches for groups that a group is a nested member of, returning the group names.
 List<String> getNamesOfUsersOfGroup(String groupName, int startIndex, int maxResults)
          Searches for users who are direct members of a group, returning the user names.
 List<Group> getNestedChildGroupsOfGroup(String groupName, int startIndex, int maxResults)
          Searches for groups who are nested members of a group.
 List<User> getNestedUsersOfGroup(String groupName, int startIndex, int maxResults)
          Searches for users who are nested members of a group.
 Events getNewEvents(String eventToken)
          Returns an events object which contains a new eventToken and events that happened after the given eventToken was generated.
 List<Group> getParentGroupsForGroup(String groupName, int startIndex, int maxResults)
          Searches for groups that a group is a direct member of.
 List<Group> getParentGroupsForNestedGroup(String groupName, int startIndex, int maxResults)
          Searches for groups that a group is a nested member of.
 User getUser(String name)
          Gets a User by user name.
 List<User> getUsersOfGroup(String groupName, int startIndex, int maxResults)
          Searches for users who are direct members of a group.
 UserWithAttributes getUserWithAttributes(String name)
          Gets a User with Attributes by user name.
 void invalidateSSOToken(String token)
          Invalidates a token.
 void invalidateSSOTokensForUser(String username)
          Invalidates all tokens for a given user name
 void invalidateSSOTokensForUser(String username, String exclude)
          Invalidates all tokens for a given user name, except for the given token.
 boolean isGroupDirectGroupMember(String childName, String parentName)
          Tests if a group is a direct member of a group.
 boolean isUserDirectGroupMember(String username, String groupName)
          Tests if a user is a direct member of a group.
 boolean isUserNestedGroupMember(String username, String groupName)
          Tests if a user is a nested member of a group.
 void removeGroup(String groupName)
          Removes a group from the remote Crowd server
 void removeGroupAttributes(String groupName, String attributeName)
          Removes a group attribute (set) from the server.
 void removeGroupFromGroup(String childGroup, String parentGroup)
          Removes a group to a group.
 void removeUser(String username)
          Removes a user from the remote Crowd server
 void removeUserAttributes(String username, String attributeName)
          Removes a user attribute from the server.
 void removeUserFromGroup(String username, String groupName)
          Removes a user from a group.
 void requestPasswordReset(String username)
          Requests a password reset.
 void requestUsernames(String email)
          Sends the usernames associated with the given email address.
 List<String> searchGroupNames(SearchRestriction searchRestriction, int startIndex, int maxResults)
          Searches for group names matching the searchRestriction criteria.
 List<Group> searchGroups(SearchRestriction searchRestriction, int startIndex, int maxResults)
          Searches for groups matching the following criteria.
 List<String> searchUserNames(SearchRestriction searchRestriction, int startIndex, int maxResults)
          Searches for usernames matching the searchRestriction criteria.
 List<User> searchUsers(SearchRestriction searchRestriction, int startIndex, int maxResults)
          Searches for users matching the following criteria.
 void shutdown()
          Closes this Crowd Client and releases any system resources associated with the client.
 void storeGroupAttributes(String groupName, Map<String,Set<String>> attributes)
          Stores the group's attributes on the remote Crowd server.
 void storeUserAttributes(String username, Map<String,Set<String>> attributes)
          Stores the user's attributes on the remote Crowd server.
 void testConnection()
          Tests if the connection is OK.
 void updateGroup(Group group)
          Updates a group on the remote Crowd server.
 void updateUser(User user)
          Updates a user on the remote Crowd server.
 void updateUserCredential(String username, String password)
          Updates the user's password on the remote Crowd server.
 void validateSSOAuthentication(String token, List<ValidationFactor> validationFactors)
          Validates the SSO authentication.
 Session validateSSOAuthenticationAndGetSession(String token, List<ValidationFactor> validationFactors)
          Validates the SSO authentication.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RestCrowdClient

public RestCrowdClient(ClientProperties clientProperties)
Constructs a new REST Crowd Client instance. This client provides a simple interface for interacting with a remote Crowd server. The client is thread safe.

Parameters:
clientProperties - crowd properties for the client
Method Detail

getUser

public User getUser(String name)
             throws UserNotFoundException,
                    ApplicationPermissionException,
                    InvalidAuthenticationException,
                    OperationFailedException
Description copied from interface: CrowdClient
Gets a User by user name.

Specified by:
getUser in interface CrowdClient
Parameters:
name - Name of the user to retrieve
Returns:
A User.
Throws:
UserNotFoundException - if the user is not found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getUserWithAttributes

public UserWithAttributes getUserWithAttributes(String name)
                                         throws UserNotFoundException,
                                                ApplicationPermissionException,
                                                InvalidAuthenticationException,
                                                OperationFailedException
Description copied from interface: CrowdClient
Gets a User with Attributes by user name.

Specified by:
getUserWithAttributes in interface CrowdClient
Parameters:
name - Name of the user to retrieve
Returns:
A User.
Throws:
UserNotFoundException - if the user is not found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

authenticateUser

public User authenticateUser(String username,
                             String password)
                      throws UserNotFoundException,
                             InactiveAccountException,
                             ExpiredCredentialException,
                             ApplicationPermissionException,
                             InvalidAuthenticationException,
                             OperationFailedException
Description copied from interface: CrowdClient
Authenticates a user with the server.

Specified by:
authenticateUser in interface CrowdClient
Parameters:
username - Name of the user to authenticate.
password - Password of the user to authenticate.
Returns:
user if the user is correctly authenticated
Throws:
UserNotFoundException - if the user could not be found
InactiveAccountException - if the user account is not active
ExpiredCredentialException - if the user credentials have expired
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

addUser

public void addUser(User user,
                    PasswordCredential passwordCredential)
             throws ApplicationPermissionException,
                    InvalidUserException,
                    InvalidCredentialException,
                    InvalidAuthenticationException,
                    OperationFailedException
Description copied from interface: CrowdClient
Adds a new User to the remote Crowd server.

Specified by:
addUser in interface CrowdClient
Parameters:
user - The user to add
passwordCredential - user password
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidUserException - if the user is invalid. This may be because a user of the same name already exists, or does not pass the server side validation rules.
InvalidCredentialException - if the password is invalid. It must conform to the rules set on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

updateUser

public void updateUser(User user)
                throws InvalidUserException,
                       UserNotFoundException,
                       ApplicationPermissionException,
                       InvalidAuthenticationException,
                       OperationFailedException
Description copied from interface: CrowdClient
Updates a user on the remote Crowd server.

Specified by:
updateUser in interface CrowdClient
Parameters:
user - The user to update
Throws:
InvalidUserException - the details of the user to be updated are invalid. This may be because the user details do not pass the server side validation rules.
UserNotFoundException - if the user does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

updateUserCredential

public void updateUserCredential(String username,
                                 String password)
                          throws InvalidCredentialException,
                                 UserNotFoundException,
                                 ApplicationPermissionException,
                                 InvalidAuthenticationException,
                                 OperationFailedException
Description copied from interface: CrowdClient
Updates the user's password on the remote Crowd server.

Specified by:
updateUserCredential in interface CrowdClient
Parameters:
username - Name of the user to update.
password - New password.
Throws:
InvalidCredentialException - if the password is invalid. It must conform to the rules set on the server
UserNotFoundException - if the user does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

requestPasswordReset

public void requestPasswordReset(String username)
                          throws UserNotFoundException,
                                 InvalidEmailAddressException,
                                 ApplicationPermissionException,
                                 InvalidAuthenticationException,
                                 OperationFailedException
Description copied from interface: CrowdClient
Requests a password reset.

Specified by:
requestPasswordReset in interface CrowdClient
Parameters:
username - name of the user
Throws:
UserNotFoundException - if the user does not exist
InvalidEmailAddressException - if the user does not have a valid email to send the reset password link to
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

requestUsernames

public void requestUsernames(String email)
                      throws InvalidEmailAddressException,
                             ApplicationPermissionException,
                             InvalidAuthenticationException,
                             OperationFailedException
Description copied from interface: CrowdClient
Sends the usernames associated with the given email address. No email will be sent if there are no usernames associated with a given email.

Specified by:
requestUsernames in interface CrowdClient
Parameters:
email - email address of the user
Throws:
InvalidEmailAddressException - if the email is not valid
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

storeUserAttributes

public void storeUserAttributes(String username,
                                Map<String,Set<String>> attributes)
                         throws UserNotFoundException,
                                ApplicationPermissionException,
                                InvalidAuthenticationException,
                                OperationFailedException
Description copied from interface: CrowdClient
Stores the user's attributes on the remote Crowd server.

Specified by:
storeUserAttributes in interface CrowdClient
Parameters:
username - Name of the user.
attributes - Set of Attributes to store. Attributes will be added or if an attribute with the same key exists will be replaced.
Throws:
UserNotFoundException - if the user does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

removeUserAttributes

public void removeUserAttributes(String username,
                                 String attributeName)
                          throws UserNotFoundException,
                                 ApplicationPermissionException,
                                 InvalidAuthenticationException,
                                 OperationFailedException
Description copied from interface: CrowdClient
Removes a user attribute from the server. If the attribute to be removed does not exist, no error is reported.

Specified by:
removeUserAttributes in interface CrowdClient
Parameters:
username - Name of the user
attributeName - Attribute key.
Throws:
UserNotFoundException - if the user does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

removeUser

public void removeUser(String username)
                throws UserNotFoundException,
                       ApplicationPermissionException,
                       InvalidAuthenticationException,
                       OperationFailedException
Description copied from interface: CrowdClient
Removes a user from the remote Crowd server

Specified by:
removeUser in interface CrowdClient
Parameters:
username - Name of the user to remove.
Throws:
UserNotFoundException - if the user does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getGroup

public Group getGroup(String name)
               throws GroupNotFoundException,
                      ApplicationPermissionException,
                      InvalidAuthenticationException,
                      OperationFailedException
Get a group by name.

Specified by:
getGroup in interface CrowdClient
Parameters:
name - name of the group to retrieve.
Returns:
A Group
Throws:
GroupNotFoundException - The group does not exist on the remote server.
OperationFailedException - For any other communication errors.
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid

getGroupWithAttributes

public GroupWithAttributes getGroupWithAttributes(String name)
                                           throws GroupNotFoundException,
                                                  ApplicationPermissionException,
                                                  InvalidAuthenticationException,
                                                  OperationFailedException
Description copied from interface: CrowdClient
Gets a group with attributes by name.

Specified by:
getGroupWithAttributes in interface CrowdClient
Parameters:
name - name of the group to retrieve.
Returns:
A Group with attributes.
Throws:
GroupNotFoundException - if the group does not exist on the remote server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

addGroup

public void addGroup(Group group)
              throws InvalidGroupException,
                     ApplicationPermissionException,
                     InvalidAuthenticationException,
                     OperationFailedException
Description copied from interface: CrowdClient
Adds a group to the remote Crowd server.

Specified by:
addGroup in interface CrowdClient
Parameters:
group - Group to add.
Throws:
InvalidGroupException - if the group is invalid. This may be because a group of the same name already exists, or does not pass the server side validation rules
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

updateGroup

public void updateGroup(Group group)
                 throws InvalidGroupException,
                        GroupNotFoundException,
                        ApplicationPermissionException,
                        InvalidAuthenticationException,
                        OperationFailedException
Description copied from interface: CrowdClient
Updates a group on the remote Crowd server.

Specified by:
updateGroup in interface CrowdClient
Parameters:
group - Group to update.
Throws:
InvalidGroupException - The group is invalid. This may be because the group does not pass the server side validation rules.
GroupNotFoundException - if the group does not exist on the remote server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

storeGroupAttributes

public void storeGroupAttributes(String groupName,
                                 Map<String,Set<String>> attributes)
                          throws GroupNotFoundException,
                                 ApplicationPermissionException,
                                 InvalidAuthenticationException,
                                 OperationFailedException
Description copied from interface: CrowdClient
Stores the group's attributes on the remote Crowd server.

Specified by:
storeGroupAttributes in interface CrowdClient
Parameters:
groupName - Name of the group.
attributes - Set of Attributes to store. Attributes will be added or if an attribute with the same key exists will be replaced.
Throws:
GroupNotFoundException - if the group does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

removeGroupAttributes

public void removeGroupAttributes(String groupName,
                                  String attributeName)
                           throws GroupNotFoundException,
                                  ApplicationPermissionException,
                                  InvalidAuthenticationException,
                                  OperationFailedException
Description copied from interface: CrowdClient
Removes a group attribute (set) from the server. If the attribute to be removed does not exist, no error is reported.

Specified by:
removeGroupAttributes in interface CrowdClient
Parameters:
groupName - Name of the group
attributeName - Attribute key.
Throws:
GroupNotFoundException - the group does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

removeGroup

public void removeGroup(String groupName)
                 throws GroupNotFoundException,
                        ApplicationPermissionException,
                        InvalidAuthenticationException,
                        OperationFailedException
Description copied from interface: CrowdClient
Removes a group from the remote Crowd server

Specified by:
removeGroup in interface CrowdClient
Parameters:
groupName - Name of the group to remove.
Throws:
GroupNotFoundException - the group does not exist on the remote Crowd server
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

isUserDirectGroupMember

public boolean isUserDirectGroupMember(String username,
                                       String groupName)
                                throws ApplicationPermissionException,
                                       InvalidAuthenticationException,
                                       OperationFailedException
Description copied from interface: CrowdClient
Tests if a user is a direct member of a group.

Specified by:
isUserDirectGroupMember in interface CrowdClient
Parameters:
username - User name
groupName - Group Name
Returns:
true if the member is a direct member of the group.
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

isUserNestedGroupMember

public boolean isUserNestedGroupMember(String username,
                                       String groupName)
                                throws ApplicationPermissionException,
                                       InvalidAuthenticationException,
                                       OperationFailedException
Description copied from interface: CrowdClient
Tests if a user is a nested member of a group.

Specified by:
isUserNestedGroupMember in interface CrowdClient
Parameters:
username - User name
groupName - Group Name
Returns:
true if the member is a nested member of the group.
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

isGroupDirectGroupMember

public boolean isGroupDirectGroupMember(String childName,
                                        String parentName)
                                 throws ApplicationPermissionException,
                                        InvalidAuthenticationException,
                                        OperationFailedException
Description copied from interface: CrowdClient
Tests if a group is a direct member of a group.

Specified by:
isGroupDirectGroupMember in interface CrowdClient
Parameters:
childName - Name of the child group
parentName - Name of the Parent group
Returns:
true if the child group is a direct member of the parent group.
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

addUserToGroup

public void addUserToGroup(String username,
                           String groupName)
                    throws GroupNotFoundException,
                           UserNotFoundException,
                           ApplicationPermissionException,
                           InvalidAuthenticationException,
                           OperationFailedException
Description copied from interface: CrowdClient
Adds a user to a group.

Specified by:
addUserToGroup in interface CrowdClient
Parameters:
username - Name of the user to add to the group.
groupName - Name of the group to be added to.
Throws:
GroupNotFoundException - if the group does not exist.
UserNotFoundException - if the user does not exist.
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

addGroupToGroup

public void addGroupToGroup(String childGroup,
                            String parentGroup)
                     throws GroupNotFoundException,
                            ApplicationPermissionException,
                            InvalidAuthenticationException,
                            OperationFailedException
Description copied from interface: CrowdClient
Adds a group to a group.

Specified by:
addGroupToGroup in interface CrowdClient
Parameters:
childGroup - Name of the group to add to the parent group.
parentGroup - Name of the group the child will be added to.
Throws:
GroupNotFoundException - if either group does not exist
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

removeUserFromGroup

public void removeUserFromGroup(String username,
                                String groupName)
                         throws MembershipNotFoundException,
                                GroupNotFoundException,
                                UserNotFoundException,
                                ApplicationPermissionException,
                                InvalidAuthenticationException,
                                OperationFailedException
Description copied from interface: CrowdClient
Removes a user from a group.

Specified by:
removeUserFromGroup in interface CrowdClient
Parameters:
username - Name of the user to add to the group.
groupName - Name of the group to be added to.
Throws:
MembershipNotFoundException - if the membership does not exist
GroupNotFoundException - if the group does not exist.
UserNotFoundException - if the user does not exist.
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

removeGroupFromGroup

public void removeGroupFromGroup(String childGroup,
                                 String parentGroup)
                          throws MembershipNotFoundException,
                                 GroupNotFoundException,
                                 ApplicationPermissionException,
                                 InvalidAuthenticationException,
                                 OperationFailedException
Description copied from interface: CrowdClient
Removes a group to a group.

Specified by:
removeGroupFromGroup in interface CrowdClient
Parameters:
childGroup - Name of the group to be removed from the parent group.
parentGroup - Name of the group the child group will be removed from.
Throws:
MembershipNotFoundException - if there is not parent-child relationship between the specified groups
GroupNotFoundException - if either group does not exist.
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if for some reason the operation has failed

testConnection

public void testConnection()
                    throws ApplicationPermissionException,
                           InvalidAuthenticationException,
                           OperationFailedException
Description copied from interface: CrowdClient
Tests if the connection is OK. This test uses a user search to validate the connection. It will fail if the application does not have permission to perform this very basic operation.

Specified by:
testConnection in interface CrowdClient
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the test fails

searchUsers

public List<User> searchUsers(SearchRestriction searchRestriction,
                              int startIndex,
                              int maxResults)
                       throws ApplicationPermissionException,
                              InvalidAuthenticationException,
                              OperationFailedException
Description copied from interface: CrowdClient
Searches for users matching the following criteria.

Specified by:
searchUsers in interface CrowdClient
Parameters:
searchRestriction - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of users satisfying the search restriction.
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

searchUserNames

public List<String> searchUserNames(SearchRestriction searchRestriction,
                                    int startIndex,
                                    int maxResults)
                             throws ApplicationPermissionException,
                                    InvalidAuthenticationException,
                                    OperationFailedException
Description copied from interface: CrowdClient
Searches for usernames matching the searchRestriction criteria.

Specified by:
searchUserNames in interface CrowdClient
Parameters:
searchRestriction - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of usernames satisfying the search restriction.
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

searchGroups

public List<Group> searchGroups(SearchRestriction searchRestriction,
                                int startIndex,
                                int maxResults)
                         throws ApplicationPermissionException,
                                InvalidAuthenticationException,
                                OperationFailedException
Description copied from interface: CrowdClient
Searches for groups matching the following criteria.

Specified by:
searchGroups in interface CrowdClient
Parameters:
searchRestriction - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of groups satisfying the search restriction.
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

searchGroupNames

public List<String> searchGroupNames(SearchRestriction searchRestriction,
                                     int startIndex,
                                     int maxResults)
                              throws ApplicationPermissionException,
                                     InvalidAuthenticationException,
                                     OperationFailedException
Description copied from interface: CrowdClient
Searches for group names matching the searchRestriction criteria.

Specified by:
searchGroupNames in interface CrowdClient
Parameters:
searchRestriction - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of group names satisfying the search restriction.
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getUsersOfGroup

public List<User> getUsersOfGroup(String groupName,
                                  int startIndex,
                                  int maxResults)
                           throws GroupNotFoundException,
                                  ApplicationPermissionException,
                                  InvalidAuthenticationException,
                                  OperationFailedException
Description copied from interface: CrowdClient
Searches for users who are direct members of a group.

Specified by:
getUsersOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of users satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfUsersOfGroup

public List<String> getNamesOfUsersOfGroup(String groupName,
                                           int startIndex,
                                           int maxResults)
                                    throws GroupNotFoundException,
                                           ApplicationPermissionException,
                                           InvalidAuthenticationException,
                                           OperationFailedException
Description copied from interface: CrowdClient
Searches for users who are direct members of a group, returning the user names.

Specified by:
getNamesOfUsersOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of user names satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getChildGroupsOfGroup

public List<Group> getChildGroupsOfGroup(String groupName,
                                         int startIndex,
                                         int maxResults)
                                  throws GroupNotFoundException,
                                         ApplicationPermissionException,
                                         InvalidAuthenticationException,
                                         OperationFailedException
Description copied from interface: CrowdClient
Searches for groups who are direct members of a group.

Specified by:
getChildGroupsOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of groups satisfying the search restrictions
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfChildGroupsOfGroup

public List<String> getNamesOfChildGroupsOfGroup(String groupName,
                                                 int startIndex,
                                                 int maxResults)
                                          throws GroupNotFoundException,
                                                 ApplicationPermissionException,
                                                 InvalidAuthenticationException,
                                                 OperationFailedException
Description copied from interface: CrowdClient
Searches for groups who are direct members of a group, returning the group names.

Specified by:
getNamesOfChildGroupsOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of group names satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getGroupsForUser

public List<Group> getGroupsForUser(String userName,
                                    int startIndex,
                                    int maxResults)
                             throws UserNotFoundException,
                                    ApplicationPermissionException,
                                    InvalidAuthenticationException,
                                    OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a user is a direct member of.

Specified by:
getGroupsForUser in interface CrowdClient
Parameters:
userName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of groups satisfying the search restriction.
Throws:
UserNotFoundException - if the user could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfGroupsForUser

public List<String> getNamesOfGroupsForUser(String userName,
                                            int startIndex,
                                            int maxResults)
                                     throws UserNotFoundException,
                                            ApplicationPermissionException,
                                            InvalidAuthenticationException,
                                            OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a user is a direct member of, returning the group names.

Specified by:
getNamesOfGroupsForUser in interface CrowdClient
Parameters:
userName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of group names satisfying the search restriction.
Throws:
UserNotFoundException - if the user could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getParentGroupsForGroup

public List<Group> getParentGroupsForGroup(String groupName,
                                           int startIndex,
                                           int maxResults)
                                    throws GroupNotFoundException,
                                           ApplicationPermissionException,
                                           InvalidAuthenticationException,
                                           OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a group is a direct member of.

Specified by:
getParentGroupsForGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of groups satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfParentGroupsForGroup

public List<String> getNamesOfParentGroupsForGroup(String groupName,
                                                   int startIndex,
                                                   int maxResults)
                                            throws GroupNotFoundException,
                                                   ApplicationPermissionException,
                                                   InvalidAuthenticationException,
                                                   OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a group is a direct member of, returning the group names.

Specified by:
getNamesOfParentGroupsForGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of group names satisfying the search restriction
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNestedUsersOfGroup

public List<User> getNestedUsersOfGroup(String groupName,
                                        int startIndex,
                                        int maxResults)
                                 throws GroupNotFoundException,
                                        ApplicationPermissionException,
                                        InvalidAuthenticationException,
                                        OperationFailedException
Description copied from interface: CrowdClient
Searches for users who are nested members of a group.

Specified by:
getNestedUsersOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of users satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfNestedUsersOfGroup

public List<String> getNamesOfNestedUsersOfGroup(String groupName,
                                                 int startIndex,
                                                 int maxResults)
                                          throws GroupNotFoundException,
                                                 ApplicationPermissionException,
                                                 InvalidAuthenticationException,
                                                 OperationFailedException
Description copied from interface: CrowdClient
Searches for users who are nested members of a group, returning the user names.

Specified by:
getNamesOfNestedUsersOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of user names satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNestedChildGroupsOfGroup

public List<Group> getNestedChildGroupsOfGroup(String groupName,
                                               int startIndex,
                                               int maxResults)
                                        throws GroupNotFoundException,
                                               ApplicationPermissionException,
                                               InvalidAuthenticationException,
                                               OperationFailedException
Description copied from interface: CrowdClient
Searches for groups who are nested members of a group.

Specified by:
getNestedChildGroupsOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of groups satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfNestedChildGroupsOfGroup

public List<String> getNamesOfNestedChildGroupsOfGroup(String groupName,
                                                       int startIndex,
                                                       int maxResults)
                                                throws GroupNotFoundException,
                                                       ApplicationPermissionException,
                                                       InvalidAuthenticationException,
                                                       OperationFailedException
Description copied from interface: CrowdClient
Searches for groups who are nested members of a group, returning the group names.

Specified by:
getNamesOfNestedChildGroupsOfGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of group names satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getGroupsForNestedUser

public List<Group> getGroupsForNestedUser(String userName,
                                          int startIndex,
                                          int maxResults)
                                   throws UserNotFoundException,
                                          ApplicationPermissionException,
                                          InvalidAuthenticationException,
                                          OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a user is a nested member of.

Specified by:
getGroupsForNestedUser in interface CrowdClient
Parameters:
userName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of groups satisfying the search restriction.
Throws:
UserNotFoundException - if the user could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfGroupsForNestedUser

public List<String> getNamesOfGroupsForNestedUser(String userName,
                                                  int startIndex,
                                                  int maxResults)
                                           throws UserNotFoundException,
                                                  ApplicationPermissionException,
                                                  InvalidAuthenticationException,
                                                  OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a user is a nested member of, returning the group names.

Specified by:
getNamesOfGroupsForNestedUser in interface CrowdClient
Parameters:
userName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of group names satisfying the search restriction.
Throws:
UserNotFoundException - if the user could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getParentGroupsForNestedGroup

public List<Group> getParentGroupsForNestedGroup(String groupName,
                                                 int startIndex,
                                                 int maxResults)
                                          throws GroupNotFoundException,
                                                 ApplicationPermissionException,
                                                 InvalidAuthenticationException,
                                                 OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a group is a nested member of.

Specified by:
getParentGroupsForNestedGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of groups satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getNamesOfParentGroupsForNestedGroup

public List<String> getNamesOfParentGroupsForNestedGroup(String groupName,
                                                         int startIndex,
                                                         int maxResults)
                                                  throws GroupNotFoundException,
                                                         ApplicationPermissionException,
                                                         InvalidAuthenticationException,
                                                         OperationFailedException
Description copied from interface: CrowdClient
Searches for groups that a group is a nested member of, returning the group names.

Specified by:
getNamesOfParentGroupsForNestedGroup in interface CrowdClient
Parameters:
groupName - restriction on the search
startIndex - starting index of the search results
maxResults - maximum number of results returned from the search
Returns:
List of group names satisfying the search restriction.
Throws:
GroupNotFoundException - if the group could not be found
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server.
InvalidAuthenticationException - if the application and password are not valid.
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

getMemberships

public Iterable<Membership> getMemberships()
                                    throws OperationFailedException,
                                           ApplicationPermissionException,
                                           InvalidAuthenticationException,
                                           UnsupportedCrowdApiException
Description copied from interface: CrowdClient

Gets the full group membership details for all groups with all direct user members and child groups. The result may be large and this operation may be slow.

This method is only supported when the server supports version 1.1 of the user management API. Clients should be ready to catch UnsupportedCrowdApiException and fall back to another technique if they need to remain backwards compatible.

Specified by:
getMemberships in interface CrowdClient
Returns:
an Iterable of the memberships for all groups
Throws:
UnsupportedCrowdApiException - if the server does not support version 1.1 of the user management API
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid

findUserFromSSOToken

public User findUserFromSSOToken(String token)
                          throws InvalidTokenException,
                                 ApplicationPermissionException,
                                 InvalidAuthenticationException,
                                 OperationFailedException
Description copied from interface: CrowdClient
Returns the user from the specified user token.

Specified by:
findUserFromSSOToken in interface CrowdClient
Parameters:
token - user token used to find the authenticated user.
Returns:
User associated with the token.
Throws:
InvalidTokenException - if the provided token is not valid
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

authenticateSSOUser

public String authenticateSSOUser(UserAuthenticationContext userAuthenticationContext)
                           throws ApplicationAccessDeniedException,
                                  ExpiredCredentialException,
                                  InactiveAccountException,
                                  ApplicationPermissionException,
                                  InvalidAuthenticationException,
                                  OperationFailedException
Description copied from interface: CrowdClient
Authenticates a Single-Sign-On (SSO) User.

Specified by:
authenticateSSOUser in interface CrowdClient
Parameters:
userAuthenticationContext - the user's authentication details.
Returns:
SSO token if successful.
Throws:
ApplicationAccessDeniedException - if the user does not have access to authenticate against the application
ExpiredCredentialException - if the user password has expired and the user is required to change their password
InactiveAccountException - if the user account is inactive
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

authenticateSSOUser

public String authenticateSSOUser(UserAuthenticationContext userAuthenticationContext,
                                  long duration)
                           throws ApplicationAccessDeniedException,
                                  ExpiredCredentialException,
                                  InactiveAccountException,
                                  ApplicationPermissionException,
                                  InvalidAuthenticationException,
                                  OperationFailedException
Description copied from interface: CrowdClient
Authenticates a Single-Sign-On (SSO) User.

Specified by:
authenticateSSOUser in interface CrowdClient
Parameters:
userAuthenticationContext - the user's authentication details.
duration - requested duration of the new token (in seconds)
Returns:
SSO token if successful.
Throws:
ApplicationAccessDeniedException - if the user does not have access to authenticate against the application
ExpiredCredentialException - if the user password has expired and the user is required to change their password
InactiveAccountException - if the user account is inactive
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

authenticateSSOUserWithoutValidatingPassword

public String authenticateSSOUserWithoutValidatingPassword(UserAuthenticationContext userAuthenticationContext)
                                                    throws ApplicationAccessDeniedException,
                                                           InactiveAccountException,
                                                           ApplicationPermissionException,
                                                           InvalidAuthenticationException,
                                                           OperationFailedException
Description copied from interface: CrowdClient
Authenticates a Single-Sign-On (SSO) User without validating password.

Specified by:
authenticateSSOUserWithoutValidatingPassword in interface CrowdClient
Parameters:
userAuthenticationContext - the user's authentication details.
Returns:
SSO token if successful.
Throws:
ApplicationAccessDeniedException - if the user does not have access to authenticate against the application
InactiveAccountException - if the user account has expired
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

validateSSOAuthentication

public void validateSSOAuthentication(String token,
                                      List<ValidationFactor> validationFactors)
                               throws InvalidTokenException,
                                      ApplicationPermissionException,
                                      InvalidAuthenticationException,
                                      OperationFailedException
Description copied from interface: CrowdClient
Validates the SSO authentication. Throws InvalidAuthenticationException if the SSO authentication is not valid.

Specified by:
validateSSOAuthentication in interface CrowdClient
Parameters:
token - Crowd SSO token
validationFactors - Details of where the user's come from. If presented, must match those presented during authentication.
Throws:
InvalidTokenException - if the supplied token is not valid
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

validateSSOAuthenticationAndGetSession

public Session validateSSOAuthenticationAndGetSession(String token,
                                                      List<ValidationFactor> validationFactors)
                                               throws InvalidTokenException,
                                                      ApplicationPermissionException,
                                                      InvalidAuthenticationException,
                                                      OperationFailedException
Description copied from interface: CrowdClient
Validates the SSO authentication. Throws InvalidAuthenticationException if the SSO authentication is not valid.

Specified by:
validateSSOAuthenticationAndGetSession in interface CrowdClient
Parameters:
token - Crowd SSO token
validationFactors - Details of where the user's come from. If presented, must match those presented during authentication.
Returns:
the current session
Throws:
InvalidTokenException - if the supplied token is not valid
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

invalidateSSOToken

public void invalidateSSOToken(String token)
                        throws ApplicationPermissionException,
                               InvalidAuthenticationException,
                               OperationFailedException
Description copied from interface: CrowdClient
Invalidates a token. If the token does not exist, the token should still return silently.

Specified by:
invalidateSSOToken in interface CrowdClient
Parameters:
token - token to invalidate
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

invalidateSSOTokensForUser

public void invalidateSSOTokensForUser(String username)
                                throws OperationFailedException,
                                       ApplicationPermissionException,
                                       InvalidAuthenticationException,
                                       UnsupportedCrowdApiException
Description copied from interface: CrowdClient
Invalidates all tokens for a given user name

Specified by:
invalidateSSOTokensForUser in interface CrowdClient
Parameters:
username - User whose sessions will be invalidated
Throws:
UnsupportedCrowdApiException - if the remote server does not support this operation
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid

invalidateSSOTokensForUser

public void invalidateSSOTokensForUser(String username,
                                       String exclude)
                                throws OperationFailedException,
                                       ApplicationPermissionException,
                                       InvalidAuthenticationException,
                                       UnsupportedCrowdApiException
Description copied from interface: CrowdClient
Invalidates all tokens for a given user name, except for the given token.

Specified by:
invalidateSSOTokensForUser in interface CrowdClient
Parameters:
username - User whose sessions will be invalidated
exclude - Token to be saved
Throws:
UnsupportedCrowdApiException - if the remote server does not support this operation
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server
InvalidAuthenticationException - if the application and password are not valid

getCookieConfiguration

public CookieConfiguration getCookieConfiguration()
                                           throws ApplicationPermissionException,
                                                  InvalidAuthenticationException,
                                                  OperationFailedException
Description copied from interface: CrowdClient
Returns the cookie configuration.

Specified by:
getCookieConfiguration in interface CrowdClient
Returns:
cookie configuration
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server.
InvalidAuthenticationException - if the application and password are not valid.
OperationFailedException - if the operation has failed for any other reason, including invalid arguments and the operation not being supported on the server.

shutdown

public void shutdown()
Description copied from interface: CrowdClient
Closes this Crowd Client and releases any system resources associated with the client.

The client can no longer be used once shutdown.

Calling this method more than once will have no effect.

Specified by:
shutdown in interface CrowdClient

getCurrentEventToken

public String getCurrentEventToken()
                            throws ApplicationPermissionException,
                                   InvalidAuthenticationException,
                                   OperationFailedException,
                                   IncrementalSynchronisationNotAvailableException
Description copied from interface: CrowdClient
Returns a token that can be used for querying events that have happened after the token was generated.

If the event token has not changed since the last call to this method, it is guaranteed that no new events have been received.

The format of event token is implementation specific and can change without a warning.

Specified by:
getCurrentEventToken in interface CrowdClient
Returns:
token that can be used for querying events that have happened after the token was generated
Throws:
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server.
InvalidAuthenticationException - if the application and password are not valid.
UnsupportedCrowdApiException - if the remote server does not support this operation
OperationFailedException - if the operation has failed for any other reason, including invalid arguments
IncrementalSynchronisationNotAvailableException - if the application cannot provide incremental synchronisation

getNewEvents

public Events getNewEvents(String eventToken)
                    throws EventTokenExpiredException,
                           ApplicationPermissionException,
                           InvalidAuthenticationException,
                           OperationFailedException
Description copied from interface: CrowdClient
Returns an events object which contains a new eventToken and events that happened after the given eventToken was generated.

If for any reason event store is unable to retrieve events that happened after the event token was generated, an EventTokenExpiredException will be thrown. The caller is then expected to call CrowdClient.getCurrentEventToken() again before asking for new events.

Specified by:
getNewEvents in interface CrowdClient
Parameters:
eventToken - event token that was retrieved by a call to CrowdClient.getCurrentEventToken() or this method
Returns:
events object which contains a new eventToken and events that happened after the given eventToken was generated
Throws:
EventTokenExpiredException - if events that happened after the event token was generated can not be retrieved
ApplicationPermissionException - if the application is not permitted to perform the requested operation on the server.
InvalidAuthenticationException - if the application and password are not valid.
UnsupportedCrowdApiException - if the remote server does not support this operation
OperationFailedException - if the operation has failed for any other reason, including invalid arguments


Copyright © 2013 Atlassian. All Rights Reserved.