我正在尝试对一个自定义服务器(不是我的)进行身份验证,该服务器理应同时接受两条腿和三条腿的身份验证。因为我是在这个服务器上验证我的服务器应用程序,所以我想2-legged最适合这里。我只需要为将来的调用存储身份验证令牌,当它过期时,很明显,重复这个过程。
因此,根据这个tutorial和这个other tutorial,我创建了我的脚本超级简单客户端:
OAuthService service = new ServiceBuilder()
.provider(DummyAPIProvider.class)
.apiKey("mykey")
.apiSecret("mysecret")
.build();
OAuthRequest request = new OAuthRequest(Verb.GET, "http://orion.lab.fi-ware.eu:1026/version");
Token accessToken = new Token("", "");
String pepe = accessToken.toString();
service.signRequest(accessToken, request);
System.out.println(pepe);
Response response = request.send();
System.out.println(response.getBody());
ret = response.getBody();来自服务器的响应始终是:
Auth-token not found in request header考虑到这一消息,我不确定是否必须在request...if so...any中包含身份验证令牌?
另一方面,我有一个能够执行这种身份验证的Javacript客户端,它主要由三个文件组成: config.js、oauth.js和server.js (它使用Node和express)。检查它,here。不过,这个客户端似乎正在进行3条腿的身份验证。
有什么想法吗?有什么想法?
发布于 2015-01-20 01:42:20
我将signatureType(SignatureType.Header)设置为服务,并使用两条腿的提供程序示例类SimpleGeoApi;它对我有效!
final OAuthService service = new ServiceBuilder()
.provider(SimpleGeoApi.class)
.apiKey("mykey")
.apiSecret("mysecret")
.signatureType(SignatureType.Header)
.build();
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
OAuthRequest request = new OAuthRequest(Verb.GET, "http://myweb.com/chapters.json");
service.signRequest(OAuthConstants.EMPTY_TOKEN, request);
Response response = request.send();
Log.w("TEST", response.getCode() + " ");
Log.w("TEST: ", response.getBody());
return null;
}
}.execute();https://stackoverflow.com/questions/20384045
复制相似问题