Class DefaultOAuth1Provider
java.lang.Object
org.glassfish.jersey.server.oauth1.DefaultOAuth1Provider
- All Implemented Interfaces:
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.)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Simple read-only implementation ofOAuth1Consumer
.class
Simple immutable implementation ofOAuth1Token
. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ConcurrentHashMap
<String, DefaultOAuth1Provider.Token> private static final ConcurrentHashMap
<String, DefaultOAuth1Provider.Consumer> private static final ConcurrentHashMap
<String, DefaultOAuth1Provider.Token> private static final ConcurrentHashMap
<String, String> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAccessToken
(String token, String secret, String consumerKey, String callbackUrl, Principal principal, Set<String> roles, javax.ws.rs.core.MultivaluedMap<String, String> attributes) authorizeToken
(DefaultOAuth1Provider.Token token, Principal userPrincipal, Set<String> roles) Authorizes a request token for given principal and roles and returns verifier.getAccessToken
(String token) Returns the access token by the consumer key and token value.getAccessTokens
(String principalName) Returns a list of access tokens authorized with the supplied principal name.getConsumer
(String consumerKey) Gets consumer corresponding to a given consumer key.getConsumers
(String owner) Returns a set of consumers registered by a given owner.getImmutableMap
(Map<String, List<String>> map) getRequestToken
(String token) Returns the request token by the consumer key and token value.newAccessToken
(OAuth1Token requestToken, String verifier) Creates a new access token.Creates a new request token for a given consumerKey.protected String
Generates a new non-guessable random string (used for token/customer strings, secrets and verifier.registerConsumer
(String owner, String key, String secret, javax.ws.rs.core.MultivaluedMap<String, String> attributes) Register a new consumer configured with Consumer Key.registerConsumer
(String owner, javax.ws.rs.core.MultivaluedMap<String, String> attributes) Register a new consumer.void
revokeAccessToken
(String token, String principalName) Checks if the supplied token is authorized for a given principal name and if so, revokes the authorization.
-
Field Details
-
consumerByConsumerKey
-
accessTokenByTokenString
-
requestTokenByTokenString
private static final ConcurrentHashMap<String,DefaultOAuth1Provider.Token> requestTokenByTokenString -
verifierByTokenString
-
-
Constructor Details
-
DefaultOAuth1Provider
public DefaultOAuth1Provider()
-
-
Method Details
-
getConsumer
Description copied from interface:OAuth1Provider
Gets consumer corresponding to a given consumer key.- Specified by:
getConsumer
in interfaceOAuth1Provider
- 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, javax.ws.rs.core.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, javax.ws.rs.core.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
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
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
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
Generates a new non-guessable random string (used for token/customer strings, secrets and verifier.- Returns:
- Random UUID string.
-
getRequestToken
Description copied from interface:OAuth1Provider
Returns the request token by the consumer key and token value.- Specified by:
getRequestToken
in interfaceOAuth1Provider
- 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 interfaceOAuth1Provider
- Parameters:
consumerKey
- consumer key to create a request token forcallbackUrl
- callback url for this request token requestattributes
- 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
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 interfaceOAuth1Provider
- Parameters:
requestToken
- authorized request tokenverifier
- 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)
-
addAccessToken
-
getAccessToken
Description copied from interface:OAuth1Provider
Returns the access token by the consumer key and token value.- Specified by:
getAccessToken
in interfaceOAuth1Provider
- Parameters:
token
- access token value- Returns:
- access token or null if no such found
-
getImmutableMap
-