Java 这个API使用的OAuth协议是什么?是否有一个标准的OAuth库可以用来进行身份验证?

Java 这个API使用的OAuth协议是什么?是否有一个标准的OAuth库可以用来进行身份验证?,java,authentication,oauth,Java,Authentication,Oauth,我遇到了这个使用OAuth API进行身份验证的私有API(不确定OAuth的版本或风格)。我对OAuth的工作知识不是很好,所以我需要一些指导来解决这个问题 下面是我如何使用Postman/Advance Rest controller Chrome extensions手动测试它,并成功查询以访问受保护的资源 第一步。使用特定的头向OAuth服务URL发出POST请求。响应包括OAuth令牌 Authorization:OAuth oauth_consumer_key="<<ke

我遇到了这个使用OAuth API进行身份验证的私有API(不确定OAuth的版本或风格)。我对OAuth的工作知识不是很好,所以我需要一些指导来解决这个问题

下面是我如何使用Postman/Advance Rest controller Chrome extensions手动测试它,并成功查询以访问受保护的资源

第一步。使用特定的头向OAuth服务URL发出POST请求。响应包括OAuth令牌

Authorization:OAuth oauth_consumer_key="<<key>>",oauth_signature_method="PLAINTEXT",oauth_signature="<<secret>>%26"
Authorization:OAuth OAuth\u consumer\u key=”“,OAuth\u signature\u method=“明文”,OAuth\u signature=“%26”
下面是一个示例响应格式。响应包括OAuth令牌和OAuth令牌secret(在下一步中,我需要使用这两个令牌访问受保护的资源)

oauth_token=&oauth_token_secret=&oauth_session_handle=JN-eMMx1z_Tpy3sFrgzVsssF9Y_pyJaE&oauth_expires_in=3600&oauth_授权_expires_in=86400
第二步。在使用Key、Secret和OAuth令牌设置授权头之后,向受保护的资源发出POST/GET请求

Authorization:OAuth oauth_consumer_key="<consumerKey>",oauth_signature_method="PLAINTEXT",oauth_signature="<consumerSecret>%26<oauth_token_secret>",oauth_token="<oauth_token>"
Authorization:OAuth OAuth\u consumer\u key=”“,OAuth\u signature\u method=“明文”,OAuth\u signature=“%26”,OAuth\u token=“”
下面是我的问题:

此API使用的OAuth版本是什么

是否有一个标准的OAuth客户端库来进行身份验证,并允许我查询受保护的数据,而不必手动构造具有上述头的POST调用,获取令牌(通过解析响应并提取令牌),是否使用另一个格式化的头进行另一次POST/GET手动调用以访问受保护的资源?如果是,怎么做

我尝试并扩展了DefaultApi20.java,但无法使其工作。然后我想知道我是否正确理解API版本。因为这个私有API只给我一个URL来获取令牌。不确定此上下文中的授权URL、请求令牌URL和访问令牌URL是什么


我甚至试着查看GoogleOAuth Java客户端库,但是我找不到一个适合我的上下文的例子。非常感谢您对理解这一点的任何帮助。

您正在使用OAuth 1.0。Scribe库是使用Java的方式:。在您的情况下,所谓的两条腿授权是它需要做的。下面是两条腿的OAuth 1.0的示例代码,带有Scribe:

在谷歌上搜索这些参数似乎指向OAuth 1.0…@jtahlborn谢谢。您能找到任何标准的oauth客户端库来进行java身份验证吗?有oauth 1的java库,是的。@jtahlborn您介意发布一个示例,分两步获得受保护的资源吗?第一个调用获取令牌,第二个调用查询资源?
Authorization:OAuth oauth_consumer_key="<consumerKey>",oauth_signature_method="PLAINTEXT",oauth_signature="<consumerSecret>%26<oauth_token_secret>",oauth_token="<oauth_token>"