【发布时间】:2016-07-11 15:51:07
【问题描述】:
使用 play-ws 2.4.6 和 NingWSClient,是否可以在 Authentication 标头中设置领域?我正在尝试使用需要设置 OAuth 领域参数的 NetSuite 的 REST 1.0 API。
这是我目前正在使用的一些示例代码:
val requestToken = RequestToken("*****", "*****")
val consumerKey = ConsumerKey("*****", "*****")
val oauthCalc = OAuthCalculator(consumerKey, requestToken)
val request: WSRequest = ws.url("https://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=554&deploy=1")
.withHeaders("Content-Type" -> "application/json").sign(oauthCalc)
request.get()
Netsuite 无法识别没有领域的 OAuth 请求,报告:USER_ERROR 标头不是 NLAuth 方案。使用 Postman rest 应用程序,当未提供领域时,我能够从 NetSuite 重现相同的错误。然后在邮递员中添加领域时,请求成功通过。
【问题讨论】:
-
Oauth 1 还是 2?另外,我认为您可以手动将领域设置为
Authorization标头的一部分 -
Oauth 1.0。在 Authorization 标头中手动设置领域时,.sign 方法会覆盖 Authorization 标头并且不会附加到它。我可以通过自己创建 HMAC-SHA1 签名并手动构建 Authorization 标头而不是使用 .sign 方法来解决此问题。
标签: scala oauth playframework netsuite