package com.bluevia.android.commons.connector.http.oauth;
import oauth.signpost.commonshttp.CommonsHttpOAuthProvider;
import oauth.signpost.commonshttp.HttpRequestAdapter;
import oauth.signpost.http.HttpRequest;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ByteArrayEntity;
/**
* Extension of OAuth signpost CommonsHttpOAuthProvider to include a HTTP body in
* a retrieveRequestToken petition.
*
* @author Telefonica R&D
*/
public class BVCommonsHttpOauthProvider extends CommonsHttpOAuthProvider {
private static final long serialVersionUID = 3819915669259754610L;
private byte[] data;
public BVCommonsHttpOauthProvider(String requestTokenEndpointUrl,
String accessTokenEndpointUrl, String authorizationWebsiteUrl) {
super(requestTokenEndpointUrl, accessTokenEndpointUrl, authorizationWebsiteUrl);
}
public void setData(byte[] data){
this.data = data;
}
//Modification in CommonsHttpOAuthProvider to include data
@Override
protected HttpRequest createRequest(String endpointUrl) throws Exception {
HttpPost request = new HttpPost(endpointUrl);
if (data != null){
ByteArrayEntity entity = new ByteArrayEntity(data);
entity.setContentType("application/x-www-form-urlencoded");
request.setEntity(entity);
}
return new HttpRequestAdapter(request);
}
}