1

i am making a request to a endpoint in apex. i have encrypted data and key using crypto class, now i want to send the encrypted data and token id in the request header for authorization using GET method. the below code is not working and no data is getting pulled from the endpoint api.

(note: api using basic authorization is working fine.)

below is my code.

public static string encryptMessage(String message, String secretKey){
        Blob key = EncodingUtil.base64Decode(secretKey);
        Blob data = Blob.valueOf(message);
        Blob encrypted = Crypto.encryptWithManagedIV('AES128', key, data);
        return EncodingUtil.base64Encode(encrypted);
    }

    String secretKey = 'xxxxxxxxxxxxxxxxxxxxxx==';
    String tokenId = 'xxxxxxxxxxxx';
    Datetime d = System.now();
    String payload = 'd='+d.format('yyyyMMddHHmmssSSSZ')+';c='+10+';t='+10;
    String message = tokenId + ':' + encryptMessage(payload, secretKey);

    HttpRequest req = new HttpRequest();
    req.setEndpoint('my endpoint url');
    req.setHeader('Accept', 'application/xml;charset=UTF-8'); 
    req.setHeader('Authorization', 'OAuth' +     EncodingUtil.base64Encode(blob.valueOf( message)));

Http http = new Http();
HTTPResponse res = http.send(req);
string response = res.getBody();
1
  • What does the response look like? responseCode, header and body
    – human
    Nov 4, 2016 at 9:48

1 Answer 1

0

If you are following Oauth then in Oauth 2 we do something like this.

string authorizationHeader = 'Bearer '+EncodingUtil.base64Encode(blob.valueOf( message));
req.setheader('Authorization',authorizationHeader);

So you might need to change your code.

4
  • i tired, its not working Nov 4, 2016 at 6:37
  • @RitzArlekar are you getting any error? if yes then post that. Also which authentication protocol you are using Oauth 2 or Basic? Nov 4, 2016 at 6:39
  • i am unaware of the authentication protocol to be used for 'AES128' encryption. that is what i want to know. but certainly not using Basic. Nov 4, 2016 at 8:41
  • @RitzArlekar you can confirm that from the documentation of site i which you are making request. SF support oauth2.0 Nov 4, 2016 at 9:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .