package com.jpeterson.littles3.bo;
import javax.servlet.http.HttpServletRequest;
import com.jpeterson.littles3.S3ObjectRequest;
/**
* S3 authentication provider.
*
* @author Jesse Peterson
*/
public interface Authenticator {
/**
* Authenticates the request.
*
* @param req
* The original HTTP request.
* @param s3Request
* The S3 specific information for authenticating the request.
* @return The authenticated <code>CanonicalUser</code> making the
* request.
* @throws RequestTimeTooSkewedException
* Thrown if the request timestamp is outside of the allotted
* timeframe.
*/
public CanonicalUser authenticate(HttpServletRequest req,
S3ObjectRequest s3Request) throws AuthenticatorException;
}