Mit play-ws 2.4.6 und dem NingWSClient, ist es möglich den Realm im Authentication Header zu setzen? Ich versuche, die REST 1.0-API von NetSuite zu treffen, für die der OAuth-Realmparameter festgelegt werden muss.Spielen Scala WS Oauth 1.0 - Wie Realm oauth Parameter einstellen?
Hier ist ein Beispielcode Ich bin derzeit mit:
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 erkennt nicht die OAuth Anfrage ohne Reich, Reporting: user_error Header nicht NLAuth Schema ist. Mit der Postman-Rest-App konnte ich denselben Fehler von NetSuite reproduzieren, wenn kein Realm zur Verfügung steht. Beim Hinzufügen des Bereichs im Postboten wurde die Anfrage erfolgreich ausgeführt.
Oauth 1 oder 2? Außerdem denke ich, dass Sie den Bereich manuell als Teil des 'Authorization'-Headers – TonyH
Oauth 1.0 festlegen können. Wenn Sie den Bereich manuell im Autorisierungsheader festlegen, überschreibt die Methode .sign den Autorisierungsheader und fügt diesen nicht an. Ich konnte dieses Problem umgehen, indem ich die HMAC-SHA1-Signatur selbst erstellte und den Berechtigungsheader manuell erstellte, anstatt die .sign-Methode zu verwenden. – awells