Class DefaultOAuth1Provider

  • All Implemented Interfaces:
    OAuth1Provider

    @Provider
    public class DefaultOAuth1Provider
    extends Object
    implements OAuth1Provider
    Default in-memory implementation of OAuth1Provider. Stores consumers and tokens in static hash maps. Provides some additional helper methods for consumer and token management (registering new consumers, retrieving a list of all registered consumers per owner, listing the authorized tokens per principal, revoking tokens, etc.)
    Author:
    Martin Matula, Miroslav Fuksa
    • Constructor Detail

      • DefaultOAuth1Provider

        public DefaultOAuth1Provider()
    • Method Detail

      • getConsumer

        public DefaultOAuth1Provider.Consumer getConsumer​(String consumerKey)
        Description copied from interface: OAuth1Provider
        Gets consumer corresponding to a given consumer key.
        Specified by:
        getConsumer in interface OAuth1Provider
        Parameters:
        consumerKey - consumer key
        Returns:
        corresponding consumer secret or null if no consumer with the given key is known
      • registerConsumer

        public DefaultOAuth1Provider.Consumer registerConsumer​(String owner,
                                                               MultivaluedMap<String,​String> attributes)
        Register a new consumer.
        Parameters:
        owner - Identifier of the owner that registers the consumer (user ID or similar).
        attributes - Additional attributes (name-values pairs - to store additional information about the consumer, such as name, URI, description, etc.)
        Returns:
        DefaultOAuth1Provider.Consumer object for the newly registered consumer.
      • registerConsumer

        public DefaultOAuth1Provider.Consumer registerConsumer​(String owner,
                                                               String key,
                                                               String secret,
                                                               MultivaluedMap<String,​String> attributes)
        Register a new consumer configured with Consumer Key.
        Parameters:
        owner - Identifier of the owner that registers the consumer (user ID or similar).
        key - Consumer key.
        secret - Consumer key secret.
        attributes - Additional attributes (name-values pairs - to store additional information about the consumer, such as name, URI, description, etc.)
        Returns:
        DefaultOAuth1Provider.Consumer object for the newly registered consumer.
      • getConsumers

        public Set<DefaultOAuth1Provider.Consumer> getConsumers​(String owner)
        Returns a set of consumers registered by a given owner.
        Parameters:
        owner - Identifier of the owner that registered the consumers to be retrieved.
        Returns:
        consumers registered by the owner.
      • getAccessTokens

        public Set<DefaultOAuth1Provider.Token> getAccessTokens​(String principalName)
        Returns a list of access tokens authorized with the supplied principal name.
        Parameters:
        principalName - Principal name for which to retrieve the authorized tokens.
        Returns:
        authorized access tokens.
      • authorizeToken

        public String authorizeToken​(DefaultOAuth1Provider.Token token,
                                     Principal userPrincipal,
                                     Set<String> roles)
        Authorizes a request token for given principal and roles and returns verifier.
        Parameters:
        token - Request token to authorize.
        userPrincipal - User principal to authorize the token for.
        roles - Set of roles to authorize the token for.
        Returns:
        OAuth verifier value for exchanging this token for an access token.
      • revokeAccessToken

        public void revokeAccessToken​(String token,
                                      String principalName)
        Checks if the supplied token is authorized for a given principal name and if so, revokes the authorization.
        Parameters:
        token - Access token to revoke the authorization for.
        principalName - Principal name the token is currently authorized for.
      • newUUIDString

        protected String newUUIDString()
        Generates a new non-guessable random string (used for token/customer strings, secrets and verifier.
        Returns:
        Random UUID string.
      • getRequestToken

        public DefaultOAuth1Provider.Token getRequestToken​(String token)
        Description copied from interface: OAuth1Provider
        Returns the request token by the consumer key and token value.
        Specified by:
        getRequestToken in interface OAuth1Provider
        Parameters:
        token - request token value
        Returns:
        request token or null if no such token corresponding to a given consumer key is found
      • newRequestToken

        public OAuth1Token newRequestToken​(String consumerKey,
                                           String callbackUrl,
                                           Map<String,​List<String>> attributes)
        Description copied from interface: OAuth1Provider
        Creates a new request token for a given consumerKey.
        Specified by:
        newRequestToken in interface OAuth1Provider
        Parameters:
        consumerKey - consumer key to create a request token for
        callbackUrl - callback url for this request token request
        attributes - additional service provider-specific parameters (this can be used to indicate what level of access is requested - i.e. readonly, or r/w, etc.)
        Returns:
        new request token
      • newAccessToken

        public OAuth1Token newAccessToken​(OAuth1Token requestToken,
                                          String verifier)
        Description copied from interface: OAuth1Provider
        Creates a new access token. This method must validate the passed arguments and return null if any of them is invalid.
        Specified by:
        newAccessToken in interface OAuth1Provider
        Parameters:
        requestToken - authorized request token
        verifier - verifier passed to the callback after authorization
        Returns:
        new access token or null if the arguments are invalid (e.g. there is no such request token as in the argument, or the verifier does not match)
      • getAccessToken

        public OAuth1Token getAccessToken​(String token)
        Description copied from interface: OAuth1Provider
        Returns the access token by the consumer key and token value.
        Specified by:
        getAccessToken in interface OAuth1Provider
        Parameters:
        token - access token value
        Returns:
        access token or null if no such found