获得用 Java 或 Groovy 填充的有效 oauth_signature 的绝对最少代码?
所以我正在测试 Rest OAuth 实现。 我的测试工具将发送 HTTP 请求,但我需要准备授权标头。
我需要什么:我想要一个有效的授权标头
我拥有什么:除 oauth_signature 之外的所有标头 我还有两个秘密:token_secret 和consumer_secret。我还拥有 access_token。所以归根结底就是必须签署此请求。我该怎么做?
摘要:我只需要填充 RESTful 服务的授权标头的 oauth_signature 部分。我该怎么做?
基本上:
oAuthHeader="OAuth";
oAuthHeader=oAuthHeader+" oauth_signature_method="+oauth_signature_method;
oAuthHeader=oAuthHeader+",oauth_version="+oauth_version;
oAuthHeader=oAuthHeader+",oauth_nonce="+oauth_nonce;
oAuthHeader=oAuthHeader+",oauth_timestamp="+oauth_timestamp;
oAuthHeader=oAuthHeader+",oauth_consumer_key="+oauth_consumer_key;
oAuthHeader=oAuthHeader+",oauth_token="+oauth_token;
oAuthHeader=oAuthHeader+",oauth_signature="+**oauth_signature**;
Authorization = oAuthHeader;
我的问题是我没有它的 oauth_signature 部分。而且我不知道如何得到它。请帮忙?
SO I am testing a Rest OAuth implementation.
My testing tool will send the HTTP Request, but I need to prepare the Authorization header.
What I need: I want a valid Authorization Header
What I have: All the headers except the oauth_signature
I also have the 2 secrets, the token_secret and the consumer_secret. I also posses the access_token. So It really boils down to, having to sign this request. How do I do that?
Summary: I simply need to populate the oauth_signature portion of the Authorization header for a RESTful service. How do I do it?
Basically:
oAuthHeader="OAuth";
oAuthHeader=oAuthHeader+" oauth_signature_method="+oauth_signature_method;
oAuthHeader=oAuthHeader+",oauth_version="+oauth_version;
oAuthHeader=oAuthHeader+",oauth_nonce="+oauth_nonce;
oAuthHeader=oAuthHeader+",oauth_timestamp="+oauth_timestamp;
oAuthHeader=oAuthHeader+",oauth_consumer_key="+oauth_consumer_key;
oAuthHeader=oAuthHeader+",oauth_token="+oauth_token;
oAuthHeader=oAuthHeader+",oauth_signature="+**oauth_signature**;
Authorization = oAuthHeader;
My problem is I do not have the oauth_signature portion of it. And I do not know how to get it. Help please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是我的 Flickr OAuth 代码。注意:我引用了 SignPost 的一些逻辑。生成它的签名确实非常棘手......好吧。这只是生成“oauth_signature”的示例
Here is my code for Flickr OAuth. NOTICE: I REFERED some logic from SignPost. It is really very tricky to generate it signature.... OK. This is just an example for generate the "oauth_signature"
对于 Twitter oAuth: 如果有人需要生成 oAuth 签名和标头以连接到 Twitter API,请参阅以下代码。这至少需要 Java 8 并且无第三方库。
使用 Spring RestTemplate 获取 Twitter 用户详细信息的示例用法:
完整代码和工作演示可在 Twitter-Play
For Twitter oAuth: In case anyone needs to generate oAuth signature and header to connect to Twitter API, here is the code. This requires minimum of Java 8 and NO 3rd party library.
Sample usage using Spring RestTemplate to get details of a Twitter user:
Complete code and working demo available at Twitter-Play
对于使用 JIRA 的 OAuth 1.0a。我能够从上面的 Twitter 示例中受益,除了在使用 JIRA 的情况下,我必须使用 RSA-SHA1 而不是 HMACSHA1 对 generatedSignatureBaseString 进行数字签名。
以下是使用 RSA-SHA1 进行签名的片段。这是在 Groovy 中,使用 Java 8,无需任何外部库:
For OAuth 1.0a with JIRA. I was able to benefit from the Twitter example above, except that in case of JIRA I had to digitally sign the generatedSignatureBaseString with RSA-SHA1 instead of HMACSHA1.
Below are the snippets to do the signing with RSA-SHA1. This is in Groovy and uses Java 8 without any external libraries: