package org.jboss.resteasy.auth.oauth;
import java.util.Set;
import org.jboss.resteasy.auth.oauth.i18n.Messages;
/**
* Used to make sure the OAuthProvider implementer does not return null values.
* If any null is returned, throws a RuntimeException
* @author Stéphane Épardaud <stef@epardaud.fr>
*/
public class OAuthProviderChecker implements OAuthProvider {
private OAuthProvider provider;
public OAuthProviderChecker(OAuthProvider provider) {
this.provider = provider;
}
private <T> T checkNull(T arg) {
if(arg == null)
throw new RuntimeException(Messages.MESSAGES.oAuthProviderShouldNotReturnNull());
return arg;
}
public OAuthConsumer registerConsumer(String consumerKey, String displayName, String connectURI)
throws OAuthException {
return checkNull(provider.registerConsumer(consumerKey, displayName, connectURI));
}
public OAuthConsumer getConsumer(String consumerKey) throws OAuthException {
return checkNull(provider.getConsumer(consumerKey));
}
public String getRealm() {
return checkNull(provider.getRealm());
}
public OAuthRequestToken getRequestToken(String consumerKey, String requestKey)
throws OAuthException {
return checkNull(provider.getRequestToken(consumerKey, requestKey));
}
public OAuthToken getAccessToken(String consumerKey, String accessKey)
throws OAuthException {
return checkNull(provider.getAccessToken(consumerKey, accessKey));
}
public void checkTimestamp(OAuthToken token, long timestamp) throws OAuthException {
provider.checkTimestamp(token, timestamp);
}
public OAuthToken makeAccessToken(String consumerKey,
String requestKey, String verifier) throws OAuthException {
return checkNull(provider.makeAccessToken(consumerKey, requestKey, verifier));
}
public OAuthToken makeRequestToken(String consumerKey, String callback,
String[] scopes, String[] permissions)
throws OAuthException {
return checkNull(provider.makeRequestToken(consumerKey, callback, scopes, permissions));
}
public String authoriseRequestToken(String consumerKey, String requestKey)
throws OAuthException {
return checkNull(provider.authoriseRequestToken(consumerKey, requestKey));
}
public void registerConsumerScopes(String consumerKey, String[] scopes)
throws OAuthException {
provider.registerConsumerScopes(consumerKey, scopes);
}
public void registerConsumerPermissions(String consumerKey, String[] permissions)
throws OAuthException {
provider.registerConsumerPermissions(consumerKey, permissions);
}
public Set<String> convertPermissionsToRoles(String[] permissions) {
return provider.convertPermissionsToRoles(permissions);
}
}