5

We're trying to connect with another company's custom API which uses two-legged OAuth to authenticate a request and send us a response.

At the moment the code we have is sending a request but it's not being authenticated at the other end and so sending a UNAUTHORISED response.

As said by other company the authentication include below steps.

"Authentication is handled using two-legged OAuth authentication:

All requests must include both an oauth_consumer_key and an oauth_signature attribute submitted via the HTTP GET method.
    The oauth_consumer_key attribute will be the user name that the user uses to access our web site.
    The oauth_signature attribute is obtained by signing the request with the OAuth signature method for HMAC-SHA1 encryption. The signature is generated using both the oauth_consumer_key attribute and the consumer secret. A single consumer secret is required per franchise and can be obtained upon request from test@examplerelationships.com.
OAuth libraries are available for many languages here: http://oauth.net/code/."

what we tried at our end using Scribe java library is below

public static void main(String[] args){
        String oauth_consumer_key = "test@example.com";
        String oauth_signature = "keyprovided";
        OAuthService service = new ServiceBuilder()
           .provider(Dummy.class)
           .apiKey(oauth_consumer_key)
           .apiSecret(oauth_signature)
           .build();
        OAuthRequest request = new OAuthRequest(Verb.GET,"https://example.com/api/users");
        Token accessToken = new Token("","");
        service.signRequest(accessToken, request);
        Response response = request.send();
        System.out.println(response.getHeaders());
        System.out.println(response.getBody());
    }

The response currently is 401-Unauthorized. What else can be missing? And what about HMAC-SHA1 encryption. I have got a little idea about oauth.

AlphaBetaGamma
  • 1,910
  • 16
  • 21

0 Answers0