【问题标题】:Restlet HTTP_DIGEST authorization in androidandroid中的Restlet HTTP_DIGEST授权
【发布时间】:2013-05-20 18:33:36
【问题描述】:

在 Android 上通过 Restlet 框架进行 HTTP_DIGEST 授权时遇到以下问题。

05-20 18:39:14.623:W/System.err(4584):Restlet 引擎不支持挑战方案 HTTP_DIGEST。 05-20 18:39:17.498: W/System.err(4584): 找不到任何支持 HTTP_Digest 挑战方案的助手。

在客户端执行并给出上述错误的部分代码

clientResource =new ClientResource("http://example.com/position");
try{
clientResource.wrap(MailResource.class);
ChallengeResponse challengeResponse = new ChallengeResponse(ChallengeScheme.HTTP_DIGEST,
"1671046999",
"tiger");      
clientResource.setChallengeResponse(challengeResponse);
clientResource.get();
}
catch (Exception e)
{
e.printStackTrace();
}

通过浏览器检查了该资源,授权似乎没问题。

有什么建议吗?:)

Google 没有提供任何可用的东西。

干杯!

【问题讨论】:

    标签: android authorization restlet-2.0 http-digest


    【解决方案1】:

    首先,您应该将 Restlet Android 版本中的 jar 文件 org.restlet.ext.crypto.jar 添加到您的 libs 文件夹中。但你可能已经这样做了。不幸的是,作为扩展提供的连接器和转换器的 Restlet 自动发现机制在 Android 中无法正常工作。这是因为 jars 在 apk 文件中重新打包并丢失了它们的元数据。因此,您必须手动配置您使用的扩展,例如支持 HTTP Digest 身份验证的扩展。

    Engine.getInstance().getRegisteredAuthenticators().add(new HttpDigestHelper());
    

    我能够重现您的问题,并且这行代码修复了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2013-07-05
      • 2014-03-30
      相关资源
      最近更新 更多