RequestT - a type of HTTP client specific request.public abstract class AbstractEdgeGridRequestSigner<RequestT,MutableRequestT> extends Object
This is an abstract base class for implementing EdgeGrid request signing in a library-specific way. There are several HTTP client libraries available for Java, and this class offers a simple mechanism for supporting them.
This class uses a ClientCredentialProvider to select a ClientCredential appropriately for each request.
This interface permits sharing a single instance of the class for a variety of API calls. It also
offers a more configurable way to retrieve credentials any way the user wants.
| Constructor and Description |
|---|
AbstractEdgeGridRequestSigner(ClientCredential clientCredential)
Creates an EdgeGrid request signer that will always sign requests with the same
ClientCredential. |
AbstractEdgeGridRequestSigner(ClientCredentialProvider clientCredentialProvider)
Creates an EdgeGrid request signer selecting a
ClientCredential via ClientCredentialProvider.getClientCredential(Request) for each request. |
| Modifier and Type | Method and Description |
|---|---|
ClientCredentialProvider |
getClientCredentialProvider() |
protected abstract Request |
map(RequestT request)
Maps HTTP client-specific request to client-agnostic model of this request.
|
protected abstract URI |
requestUri(RequestT request)
Returns Request-URI of an original request.
|
protected abstract void |
setAuthorization(MutableRequestT request,
String signature)
Updates a given HTTP request by adding Authorization header with a value containing request
signature.
|
protected abstract void |
setHost(MutableRequestT request,
String host,
URI uri)
Updates a given HTTP request by replacing the request hostname with
host instead. |
void |
sign(RequestT request,
MutableRequestT requestToUpdate)
Signs
request with appropriate credentials using EdgeGrid signer algorithm and
replaces request's host name with the one specified by the credential. |
public AbstractEdgeGridRequestSigner(ClientCredential clientCredential)
ClientCredential. This constructor will automatically produce a DefaultClientCredentialProvider out of clientCredential.clientCredential - a ClientCredential to be used for all requestspublic AbstractEdgeGridRequestSigner(ClientCredentialProvider clientCredentialProvider)
ClientCredential via ClientCredentialProvider.getClientCredential(Request) for each request.clientCredentialProvider - a ClientCredentialProvider to be used for selecting
credentials for each requestpublic final ClientCredentialProvider getClientCredentialProvider()
public void sign(RequestT request, MutableRequestT requestToUpdate) throws RequestSigningException
request with appropriate credentials using EdgeGrid signer algorithm and
replaces request's host name with the one specified by the credential.request - an HTTP request with data used to signrequest - an HTTP request to update with signatureRequestSigningException - if failed to sign a requestNoMatchingCredentialException - if acquiring a ClientCredential throws NoMatchingCredentialException or returns nullprotected abstract URI requestUri(RequestT request)
protected abstract Request map(RequestT request)
request - an HTTP client-specific requestRequest representation of requestIllegalArgumentException - if duplicate header definitions are foundprotected abstract void setAuthorization(MutableRequestT request, String signature)
request - HTTP request to updatesignature - HTTP request signatureprotected abstract void setHost(MutableRequestT request, String host, URI uri)
host instead.
Usually, it means updating Host header and Request-URI.request - HTTP request to updatehost - an OPEN API hostnameuri - request URI with OPEN API hostnameCopyright © 2016–2018. All rights reserved.