org.jboss.resteasy.auth.oauth
Class OAuthProviderChecker

java.lang.Object
  extended by org.jboss.resteasy.auth.oauth.OAuthProviderChecker
All Implemented Interfaces:
OAuthConsumerRegistration, OAuthProvider

public class OAuthProviderChecker
extends Object
implements OAuthProvider

Used to make sure the OAuthProvider implementer does not return null values. If any null is returned, throws a RuntimeException

Author:
Stéphane Épardaud

Constructor Summary
OAuthProviderChecker(OAuthProvider provider)
           
 
Method Summary
 String authoriseRequestToken(String consumerKey, String requestKey)
          Authorises the given Request Token for the given Consumer and return a new Verifier to be returned to the Client.
 void checkTimestamp(OAuthToken token, long timestamp)
          Checks that the given timestamp is valid for the given OAuth Token.
 Set<String> convertPermissionsToRoles(String[] permissions)
          Converts custom permissions which may have been associated with consumers or access tokens into domain specific roles, example, given a "printResources" permission this method may return a role name "printerService"
 OAuthToken getAccessToken(String consumerKey, String accessKey)
          Returns the OAuth Access Token for the given Consumer key and Access Token.
 OAuthConsumer getConsumer(String consumerKey)
          Returns the OAuth Consumer for the given Consumer key.
 String getRealm()
          Returns the Realm of this provider
 OAuthRequestToken getRequestToken(String consumerKey, String requestKey)
          Returns the OAuth Request Token for the given Consumer key and Request Token.
 OAuthToken makeAccessToken(String consumerKey, String requestKey, String verifier)
          Make a new OAuth Access Token for the given Consumer, using the given Request Token and Verifier.
 OAuthToken makeRequestToken(String consumerKey, String callback, String[] scopes, String[] permissions)
          Make a new OAuth Request Token for the given Consumer, using the given callback.
 OAuthConsumer registerConsumer(String consumerKey, String displayName, String connectURI)
          Creates a new OAuth Consumer
 void registerConsumerPermissions(String consumerKey, String[] permissions)
          Registers Consumer Permissions
 void registerConsumerScopes(String consumerKey, String[] scopes)
          Registers Consumer Scopes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OAuthProviderChecker

public OAuthProviderChecker(OAuthProvider provider)
Method Detail

registerConsumer

public OAuthConsumer registerConsumer(String consumerKey,
                                      String displayName,
                                      String connectURI)
                               throws OAuthException
Description copied from interface: OAuthConsumerRegistration
Creates a new OAuth Consumer

Specified by:
registerConsumer in interface OAuthConsumerRegistration
Parameters:
consumerKey - the Consumer key.
Returns:
consumer secret.
Throws:
OAuthException - thrown if Consumer can not be registered.

getConsumer

public OAuthConsumer getConsumer(String consumerKey)
                          throws OAuthException
Description copied from interface: OAuthProvider
Returns the OAuth Consumer for the given Consumer key. If no such Consumer exists, throw an OAuthException.

Specified by:
getConsumer in interface OAuthProvider
Parameters:
consumerKey - the Consumer key to load.
Returns:
the OAuth Consumer for the given Consumer key.
Throws:
OAuthException - thrown if the given Consumer does not exist.

getRealm

public String getRealm()
Description copied from interface: OAuthProvider
Returns the Realm of this provider

Specified by:
getRealm in interface OAuthProvider

getRequestToken

public OAuthRequestToken getRequestToken(String consumerKey,
                                         String requestKey)
                                  throws OAuthException
Description copied from interface: OAuthProvider
Returns the OAuth Request Token for the given Consumer key and Request Token. If no such Consumer or Request Token exist, throw an OAuthException.

Specified by:
getRequestToken in interface OAuthProvider
Parameters:
consumerKey - the Consumer key whose Request Token we want to load
requestKey - the Request Token to load
Returns:
the OAuth Request Token for the given Consumer key and Request Token
Throws:
OAuthException - thrown if the given Request Token does not exist.

getAccessToken

public OAuthToken getAccessToken(String consumerKey,
                                 String accessKey)
                          throws OAuthException
Description copied from interface: OAuthProvider
Returns the OAuth Access Token for the given Consumer key and Access Token. If no such Consumer or Access Token exist, throw an OAuthException.

Specified by:
getAccessToken in interface OAuthProvider
Parameters:
consumerKey - the Consumer key whose Access Token we want to load
Returns:
the OAuth Access Token for the given Consumer key and Access Token
Throws:
OAuthException - thrown if the given Consumer or Access Token do not exist.

checkTimestamp

public void checkTimestamp(OAuthToken token,
                           long timestamp)
                    throws OAuthException
Description copied from interface: OAuthProvider
Checks that the given timestamp is valid for the given OAuth Token. The timestamp should always be greater or equal to the last timestamp used for the given OAuth Token. The responsability to know whether the given OAuth Token is a Request or Access Token is left to the implementer. This method should associate and remember the given timestamp for the given Token if it is valid, since the message integrity has already been verified and we are guaranteed that the given timestamp comes from a message signed from the appropriate Consumer.

Specified by:
checkTimestamp in interface OAuthProvider
Parameters:
token - the OAuth Token whose timestamp to check and save if valid
timestamp - the timestamp to check and save if valid
Throws:
OAuthException - thrown if the given timestamp is not greater or equal to the last timestamp associated with the given OAuth Token

makeAccessToken

public OAuthToken makeAccessToken(String consumerKey,
                                  String requestKey,
                                  String verifier)
                           throws OAuthException
Description copied from interface: OAuthProvider
Make a new OAuth Access Token for the given Consumer, using the given Request Token and Verifier. If the Request Token has not yet been authorised and/or does not match the given Specifier, throw an OAuthException.

Specified by:
makeAccessToken in interface OAuthProvider
Parameters:
consumerKey - the Consumer key for whom to create a new Access Token
requestKey - the Request Token to exchange for a new Access Token
verifier - the Client-specified Verifier that must match the Verifier that was given to the Client when the given Request Token was authorised.
Returns:
a new OAuth Access Token for the given Consumer
Throws:
OAuthException - thrown if the given Consumer or Request Token does not exist, if the Request Token is not authorised or if the Verifier is invalid.

makeRequestToken

public OAuthToken makeRequestToken(String consumerKey,
                                   String callback,
                                   String[] scopes,
                                   String[] permissions)
                            throws OAuthException
Description copied from interface: OAuthProvider
Make a new OAuth Request Token for the given Consumer, using the given callback.

Specified by:
makeRequestToken in interface OAuthProvider
Parameters:
consumerKey - the Consumer key for whom to create a new Request Token
callback - the Client-specified callback for this Request Token
scopes - resource URIs the consumer would like to access
Returns:
a new OAuth Request Token for the given Consumer
Throws:
OAuthException - thrown if the given Consumer does not exist

authoriseRequestToken

public String authoriseRequestToken(String consumerKey,
                                    String requestKey)
                             throws OAuthException
Description copied from interface: OAuthProvider
Authorises the given Request Token for the given Consumer and return a new Verifier to be returned to the Client. If the given Consumer or Request Token do not exist, or if the Request Token has already been authorised, throw an OAuthException.

Specified by:
authoriseRequestToken in interface OAuthProvider
Parameters:
consumerKey - the Consumer Key whose Request Token we want to authorise
requestKey - the Request Token to authorise
Returns:
a Verifier associated with the newly-authorised Request Token.
Throws:
OAuthException - thrown if the given Consumer or Request Token do not exist, or if the Request Token has already been authorised.

registerConsumerScopes

public void registerConsumerScopes(String consumerKey,
                                   String[] scopes)
                            throws OAuthException
Description copied from interface: OAuthConsumerRegistration
Registers Consumer Scopes

Specified by:
registerConsumerScopes in interface OAuthConsumerRegistration
Parameters:
consumerKey - the Consumer key.
Throws:
OAuthException - thrown if scopes can not be registered.

registerConsumerPermissions

public void registerConsumerPermissions(String consumerKey,
                                        String[] permissions)
                                 throws OAuthException
Description copied from interface: OAuthConsumerRegistration
Registers Consumer Permissions

Specified by:
registerConsumerPermissions in interface OAuthConsumerRegistration
Parameters:
consumerKey - the Consumer key.
Throws:
OAuthException - thrown if permissions can not be registered.

convertPermissionsToRoles

public Set<String> convertPermissionsToRoles(String[] permissions)
Description copied from interface: OAuthProvider
Converts custom permissions which may have been associated with consumers or access tokens into domain specific roles, example, given a "printResources" permission this method may return a role name "printerService"

Specified by:
convertPermissionsToRoles in interface OAuthProvider
Returns:
roles


Copyright © 2011. All Rights Reserved.