oauth版本1缺少身份验证凭据

时间:2016-10-16 08:31:58

标签: oauth

当我尝试执行OAuth v1请求时,我得到了

"回复{code = 401,message =' Unauthorized',body =' null',headers = {Keep-Alive = timeout = 60,Transfer-Encoding = chunked,null = HTTP / 1.1 401 Unauthorized,Server = CodeBig,WWW-Authenticate = OAuth realm =" classified.net",Connection = keep-alive,CodeBig-Error-Message =缺少认证凭证,Date = Sun,2016年10月16日08:16:16 GMT,Via = 1.1 CodeBig,Content-Type = text / plain}}" ###

以下是使用 scribejava

的代码段
String apiKey = "fsfsfsf";
        String apiSecret = "fsfsfsfsf";
        String PROTECTED_RESOURCE_URL = "https://somerealm.net/";
        OAuth10aService service = new ServiceBuilder().apiKey(apiKey).apiSecret(apiSecret).signatureType(SignatureType.QueryString).build(new MyAOuthv1());

OAuthRequest request = new OAuthRequest(Verb.POST, PROTECTED_RESOURCE_URL, service);
request.addOAuthParameter(OAuthConstants.TIMESTAMP, service.getApi().getTimestampService().getTimestampInSeconds());
        request.addOAuthParameter(OAuthConstants.NONCE, service.getApi().getTimestampService().getNonce());
        request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, "blahblahblah");
        request.addOAuthParameter(OAuthConstants.CONSUMER_SECRET, "blahblahblah");
        request.addOAuthParameter(OAuthConstants.SIGN_METHOD, service.getApi().getSignatureService().getSignatureMethod());
        request.addOAuthParameter(OAuthConstants.VERSION, "1.0");
        request.addOAuthParameter(OAuthConstants.SIGNATURE, getSignature(service, request));
request.addPayload("{\"id\":12345,\"message\":\"some text\"}");
request.addHeader("Content-Type", "application/json");

Response response = request.send();

但是如果我使用firefox的REST客户端,我就可以了。 怎么了? OAuth vesrion是1.0

1 个答案:

答案 0 :(得分:0)

为什么不使用OAuth10aService :: signRequest方法?