class DomainWideDelegationAuthorityProvider extends AbstractUserProvider {

    @Override
    public AccessToken getAccessToken(String googleIdentity, List<String> scopes) {
        // Get signed JWT
        String signedJWT = getSignedJWT(googleIdentity, scopes);
        // Obtain and return new access token for the owner
        return tradeSignedJWTForAccessToken(signedJWT);
    }

}