我想了解如何使用oAuth对Citrus Framework中的REST服务进行身份验证。我在找例子。如果有,请分享。如果您能同时提供oAuth 1.0和2.0的示例,那就太好了。
我使用Rest Restured中的以下代码对身份验证服务进行身份验证,
child(X,Y) :- parent(Y,X).
not(P):- call(P), !, fail.
not(P).
ancestor(X,Y):- parent(X,Y).
ancestor(X,Y):- parent(Z,Y), ancestor(X,Z).
common_ancestor(X,Y,Z):- ancestor(X,Y), ancestor(X,Z).
closest_common_ancestor(X,Y,Z):-
common_ancestor(X,Y,Z),
\+(child(P,X),common_ancestor(P,Y,Z)).
ancestorList(X,Y,L):- ancestor(X,Y),
答案 0 :(得分:0)
在Citrus中,您必须通过流利的API添加授权所需的标头。它看起来应该与此类似,但我尚未在本地对其进行测试。
http()
.client(myClient)
.send()
.post("/myOauthEndpoint")
.header("Authorization",
"OAuth oauth_callback=\"http%3A%2F%2Flocalhost%2Fsign-in-with-twitter%2F\",\n" +
" oauth_consumer_key=\"cChZNFj6T5R0TigYB9yd1w\",\n" +
" oauth_nonce=\"ea9ec8429b68d6b77cd5600adbbb0456\",\n" +
" oauth_signature=\"F1Li3tvehgcraF8DMJ7OyxO4w9Y%3D\",\n" +
" oauth_signature_method=\"HMAC-SHA1\",\n" +
" oauth_timestamp=\"1318467427\",\n" +
" oauth_version=\"1.0\"");
我使用的信息来自http://oauthbible.com/。
我建议将标头生成包装在实用程序函数中,例如:
http()
.client(myClient)
.send()
.post("/myOauthEndpoint")
.header(generateOauthHeader(consumerKey, consumerSecret, token, tokenSecret));