Thanks Robert,I was able to do this using the signer provided in Gdata library and it worked.
-partha On Thu, Oct 15, 2009 at 10:29 PM, Robert Winch <[email protected]> wrote: > I would consider using a library that already does this for you. There are > three things that MAY cause you problems. > > 1) What is the value of the key that you are passing in? The key to sign > should be oauthParamEncode(consumerSecret) + "&" + > oauthParamEncode(tokenSecret). I define oauthParamEncode as per the > specification [1]. Note if the tokenSecret is null it should be empty > String. > > 2) The signature you compare to the OAuth Playground should also have > oauthParamEncode done on it. > > 3) Depending on your default encoding you may have issues as well. May be > good to pass in "UTF-8" into the getBytes. > > [1] http://oauth.net/core/1.0a#encoding_parameters > > > On Thu, Oct 15, 2009 at 12:45 AM, Partha <[email protected]>wrote: > >> >> I am using the following code to sign the base string. Is this >> correct? >> >> My problem is, I generate the base string using OAuth playground and >> when I create the signature it does not match with the one generated >> in the playground and my subsequent request fails with HTTP error code >> 400 >> >> What is wrong in this? >> >> >> public final class Encoder { >> >> private static final String SIGNING_ALGORITHM = "HmacSHA1"; >> >> private Encoder() { >> // nothing to do. >> } >> >> public static String sign(final String source, final String key) { >> if (key == null) { >> throw new IllegalArgumentException("key cannot be null"); >> } >> Mac mac = null; >> try { >> mac = Mac.getInstance(SIGNING_ALGORITHM); >> mac.init(new SecretKeySpec(key.getBytes(), >> SIGNING_ALGORITHM)); >> } catch (Exception e) { >> throw new RuntimeException(e); >> } >> final byte[] result = mac.doFinal(source.getBytes()); >> final String signature = new String(Base64.encodeBase64 >> (result)); >> return signature; >> } >> } >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "OAuth" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/oauth?hl=en -~----------~----~----~----~------~----~------~--~---
