使用GWT时,服务器端的Restlet ChallengeResponse为null

时间:2015-03-24 15:07:35

标签: authentication gwt restlet

我们正在尝试将Google身份验证令牌发送到Google App Engine上的Rest界面。 如此处所述(标题为#34;调用Google API")

https://developers.google.com/accounts/docs/OAuth2InstalledApp

我们应该通过包含授权:承载HTTP标头来实现。 在客户端,我们正在使用;

public ClientResource getClientResource(Reference pReference, String pAccessToken)
{
    ClientResource lClientResource = new ClientResource(pReference);

    ChallengeResponse lChallengeResponse = new ChallengeResponse(ChallengeScheme.HTTP_OAUTH_BEARER);
    lChallengeResponse.setRawValue(pAccessToken);
    lClientResource.setChallengeResponse(lChallengeResponse);

    return lClientResource;
}

所以带有setRawValue()的ChallengeResponse用于设置标题;

ChallengeResponse lChallengeResponse = new        ChallengeResponse(ChallengeScheme.HTTP_OAUTH_BEARER);
lChallengeResponse.setRawValue(pAccessToken);
lClientResource.setChallengeResponse(lChallengeResponse);

对于我们的J2SE客户端,这是有效的。虽然有错误信息;

" Restlet引擎不支持挑战方案HTTP_Bearer。"

我们可以使用;

在服务器端读取令牌
ChallengeResponse lChallengeResponse = pRequest.getChallengeResponse();
String lAccessToken = lChallengeResponse.getRawValue();

虽然这适用于我们的J2SE客户端,但我们的GWT客户端始终返回 lChallengeResponse == null

这是设置授权:承载HTTP标头的正确方法,还是应该添加额外/其他配置选项?

为什么这不适用于我们的GWT客户端(返回null)?

我们如何摆脱J2Se客户端上的错误消息?

0 个答案:

没有答案