播放Scala WS Oauth 1.0-如何设置领域Oauth参数?

播放Scala WS Oauth 1.0-如何设置领域Oauth参数?,scala,oauth,playframework,netsuite,Scala,Oauth,Playframework,Netsuite,使用play ws 2.4.6和NingWSClient,是否可以在身份验证头中设置域?我试图访问NetSuite的REST1.0API,它要求设置OAuth领域参数 以下是我目前使用的一些示例代码: val requestToken = RequestToken("*****", "*****") val consumerKey = ConsumerKey("*****", "*****") val oauthCalc = OAuthCalculator(consumerKey, reques

使用play ws 2.4.6和NingWSClient,是否可以在身份验证头中设置域?我试图访问NetSuite的REST1.0API,它要求设置OAuth领域参数

以下是我目前使用的一些示例代码:

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\u ERROR header不是NLAuth scheme。使用Postman rest应用程序,当没有提供领域时,我能够从NetSuite复制相同的错误。然后,当在postman中添加域时,请求成功通过。

我能够通过自己创建HMAC-SHA1签名并手动构建授权头而不是使用.sign方法来绕过这个问题。

我能够通过自己创建HMAC-SHA1签名来绕过这个问题,并手动生成授权标头,而不是使用.sign方法。

Oauth 1或2?此外,我认为您可以将领域手动设置为
授权
headerOauth 1.0的一部分。在授权标头中手动设置域时,.sign方法会覆盖授权标头,而不会附加到授权标头。我通过自己创建HMAC-SHA1签名并手动构建授权头而不是使用.sign方法来解决这个问题。Oauth 1或2?此外,我认为您可以将领域手动设置为
授权
headerOauth 1.0的一部分。在授权标头中手动设置域时,.sign方法会覆盖授权标头,而不会附加到授权标头。我可以通过自己创建HMAC-SHA1签名,并手动构建授权标头而不是使用.sign方法来解决这个问题。我很好奇你是否知道如何让它在不手动构建标头的情况下添加域?是的,我最终扩展了OAuthCalculator&OAuthSignatureCalculator类,以便可以向它们传递领域参数。然后,在OAuthSignatureCalculator中,可以重写CalculateAndSignature方法,以便将领域头附加到headerValue字符串。必须从OAuthSignatureCalculator重新编写私有constructAuthHeader方法,以便我可以在扩展的OAuthSignatureCalculator中使用它。我很好奇你是否知道如何让它在不手动构建标头的情况下添加域?是的,我最终扩展了OAuthCalculator&OAuthSignatureCalculator类,以便可以向它们传递领域参数。然后,在OAuthSignatureCalculator中,可以重写CalculateAndSignature方法,以便将领域头附加到headerValue字符串。必须从OAuthSignatureCalculator重新编写私有constructAuthHeader方法,以便在扩展的OAuthSignatureCalculator中使用它。