2016-07-11 6 views
1

play-ws 2.4.6とNingWSClientを使用すると、認証ヘッダーにレルムを設定できますか? NetSuiteのREST 1.0 APIを使用しようとしていますが、OAuth realmパラメータを設定する必要があります。スカラWS Oauth 1.0をプレイ - どのように領域の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_ERRORヘッダはNLAuthスキームではありません。ここで

は、私が現在使用しているいくつかのサンプルコードですレルムが提供されていないときに、Postman rest appを使用して、NetSuiteから同じエラーを再現することができました。その後、郵便配達で領域を追加すると、リクエストは正常に処理されました。

+0

Oauth 1または2?また、私はあなたが 'Authorization'ヘッダの一部として領域を手動で設定できると思います – TonyH

+0

Oauth 1.0。レルムヘッダーでレルムを手動で設定すると、.signメソッドはAuthorizationヘッダーを上書きし、追加しません。 HMAC-SHA1の署名を自分で作成し、.signメソッドを使用する代わりにAuthorizationヘッダーを手動で作成することで、この問題を回避することができました。 – awells

答えて

0

私はHMAC-SHA1署名を自分で作成し、.signメソッドを使用する代わりにAuthorizationヘッダーを手動で作成することでこの問題を回避できました。

+0

手作業でヘッダーを作成せずに領域を追加する方法を知ったことがあるのか​​不思議です。 – shuttj

+0

ええ、私は、領域パラメータを渡すことができるようにOAuthCalculator&OAuthSignatureCalculatorクラスを拡張しました。次に、OAuthSignatureCalculatorで、calculateAndAddSignatureメソッドをオーバーライドして、realmヘッダーをheaderValue文字列に追加できるようにします。 OAuthSignatureCalculatorからprivate constructAuthHeaderメソッドを書き直して、拡張されたOAuthSignatureCalculatorで使用できるようにしなければなりませんでした。 – awells

関連する問題