Interface RemoteAlfrescoTicketService
- All Known Implementing Classes:
RemoteAlfrescoTicketServiceImpl
public interface RemoteAlfrescoTicketService
Service for working with a Remote Alfresco instance, which holds user credentials for the remote system via the
RemoteCredentialsService, and handles ticket negotiation for you.
Currently only Username+Password credentials, exchanged for a regular alf_ticket Alfresco Ticket are supported, but things like OAuth should be supportable too later.
All Remote Systems must be registered with this service before use, supplying details of where to find the remote Alfresco for a given Remote System ID. The Remote System names should follow the system naming convention from RemoteCredentialsService
TODO OAuth support- Since:
- 4.0.2
- Author:
- Nick Burch
-
Method Summary
Modifier and TypeMethodDescriptionbooleandeleteRemoteCredentials(String remoteSystemId) Deletes the remote credentials (if any) for the current usergetAlfrescoTicket(String remoteSystemId) Returns the current Alfresco Ticket for the current user on the remote system, fetching if it isn't already cached.getRemoteCredentials(String remoteSystemId) Retrieves the remote credentials (if any) for the current userrefetchAlfrescoTicket(String remoteSystemId) Forces a re-fetch of the Alfresco Ticket for the current user, if possible, and marks the credentials as failing if not.voidRegisters the details of a new Remote System with the service.storeRemoteCredentials(String remoteSystemId, String username, String password) Validates and stores the remote credentials for the current user
-
Method Details
-
storeRemoteCredentials
BaseCredentialsInfo storeRemoteCredentials(String remoteSystemId, String username, String password) throws AuthenticationException, RemoteSystemUnavailableException, NoSuchSystemException Validates and stores the remote credentials for the current user- Parameters:
remoteSystemId- The ID of the remote system, as registered with the service- Throws:
AuthenticationException- If the credentials are invalidRemoteSystemUnavailableException- If the remote system is unavailableNoSuchSystemException- If no system has been registered with the given ID
-
getRemoteCredentials
Retrieves the remote credentials (if any) for the current user- Parameters:
remoteSystemId- The ID of the remote system, as registered with the service- Returns:
- The current user's remote credentials, or null if they don't have any
- Throws:
NoSuchSystemException- If no system has been registered with the given ID
-
deleteRemoteCredentials
Deletes the remote credentials (if any) for the current user- Parameters:
remoteSystemId- The ID of the remote system, as registered with the service- Returns:
- Whether credentials were found to delete
- Throws:
NoSuchSystemException- If no system has been registered with the given ID
-
getAlfrescoTicket
RemoteAlfrescoTicketInfo getAlfrescoTicket(String remoteSystemId) throws AuthenticationException, NoCredentialsFoundException, NoSuchSystemException, RemoteSystemUnavailableException Returns the current Alfresco Ticket for the current user on the remote system, fetching if it isn't already cached. Note that because tickets are cached, it is possible that a ticket has become invalid (due to timeout or server restart). If the ticket is rejected by the remote server, you should callrefetchAlfrescoTicket(String)to ensure you have the latest ticket, and re-try the request.- Parameters:
remoteSystemId- The ID of the remote system, as registered with the service- Returns:
- The Alfresco Ticket for the current user on the remote system
- Throws:
AuthenticationException- If the stored remote credentials are now invalidNoCredentialsFoundException- If the user has no stored credentials for the remote systemNoSuchSystemException- If no system has been registered with the given IDRemoteSystemUnavailableException- If it was not possible to talk to the remote system
-
refetchAlfrescoTicket
RemoteAlfrescoTicketInfo refetchAlfrescoTicket(String remoteSystemId) throws AuthenticationException, NoCredentialsFoundException, NoSuchSystemException, RemoteSystemUnavailableException Forces a re-fetch of the Alfresco Ticket for the current user, if possible, and marks the credentials as failing if not. NormallygetAlfrescoTicket(String)should be used initially, with this only used if the ticket received is rejected by the remote server.- Parameters:
remoteSystemId- The ID of the remote system, as registered with the service- Returns:
- The Alfresco Ticket for the current user on the remote system
- Throws:
AuthenticationException- If the stored remote credentials are now invalidNoCredentialsFoundException- If the user has no stored credentials for the remote systemNoSuchSystemException- If no system has been registered with the given IDRemoteSystemUnavailableException- If it was not possible to talk to the remote system
-
registerRemoteSystem
Registers the details of a new Remote System with the service.- Parameters:
remoteSystemId- The ID to be used to identify the systembaseUrl- The base URL of Alfresco Services on the remote system, eg http://localhost:8080/alfresco/service/requestHeaders- Any HTTP headers that must be sent with the request when talking to the server
-