/**
* Mule Development Kit
* Copyright 2010-2011 (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mule.devkit.it;
import org.mule.api.annotations.Configurable;
import org.mule.api.annotations.Module;
import org.mule.api.annotations.Processor;
import org.mule.api.annotations.oauth.OAuth;
import org.mule.api.annotations.oauth.OAuthAccessToken;
import org.mule.api.annotations.oauth.OAuthAccessTokenSecret;
import org.mule.api.annotations.oauth.OAuthConsumerKey;
import org.mule.api.annotations.oauth.OAuthConsumerSecret;
/**
* This an OAuth test module
*
* @author MuleSoft, Inc.
*/
@Module(name = "oauth")
@OAuth(requestTokenUrl = OAuthModule.REQUEST_TOKEN_URL,
authorizationUrl = OAuthModule.AUTHORIZATION_URL,
accessTokenUrl = OAuthModule.ACCESS_TOKEN_URL)
public class OAuthModule {
public static final int PORT = Constants.OAUTH_ENDPOINTS_PORT;
public static final String REQUEST_TOKEN_URL = "http://localhost:" + PORT + "/requestToken";
public static final String AUTHORIZATION_URL = "http://localhost:" + PORT + "/authorize";
public static final String ACCESS_TOKEN_URL = "http://localhost:" + PORT + "/accessToken";
public static final String PROTECTED_RESOURCE = "protected resource";
public static final String NON_PROTECTED_RESOURCE = "non protected resource";
/**
* Consumer Key
*/
@Configurable
@OAuthConsumerKey
private String consumerKey;
/**
* Consumer Secret
*/
@Configurable
@OAuthConsumerSecret
private String consumerSecret;
/**
* Access protected resource
*
* @param accessToken Access token
* @param accessTokenSecret Access token secret
* @return
*/
@Processor
public String protectedResource(@OAuthAccessToken String accessToken, @OAuthAccessTokenSecret String accessTokenSecret) {
if (!accessToken.equals(Constants.ACCESS_TOKEN) || !accessTokenSecret.equals(Constants.ACCESS_TOKEN_SECRET)) {
throw new RuntimeException("Access token or access token secret do not match expected");
}
return PROTECTED_RESOURCE;
}
/**
* Access a non-protected resource
*
* @return
*/
@Processor
public String nonProtectedResource() {
return NON_PROTECTED_RESOURCE;
}
public String getConsumerKey() {
return consumerKey;
}
public void setConsumerKey(String consumerKey) {
this.consumerKey = consumerKey;
}
public String getConsumerSecret() {
return consumerSecret;
}
public void setConsumerSecret(String consumerSecret) {
this.consumerSecret = consumerSecret;
}
}