Рестлет HTTP_DIGEST авторизации в андроиде

Возникла следующая проблема с авторизацией HTTP_DIGEST через платформу Restlet на Android.

05-20 18: 39: 14.623: W / System.err (4584): схема вызова 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 не предлагает ничего полезного.

Ура!

1 ответ

Во-первых, вы должны добавить файл jar org.restlet.ext.crypto.jar из версии Restlet Android в вашу папку libs. Но вы, вероятно, уже сделали это. К сожалению, механизм автоматического обнаружения Restlet для соединителей и преобразователей, предоставляемых как расширения, не работает должным образом в Android. Это связано с тем, что файлы jar перепаковываются в файле apk и теряют свои метаданные. Таким образом, вам придется вручную настроить используемые вами расширения, например, поддерживающие аутентификацию HTTP Digest.

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

Я смог воспроизвести вашу проблему, и эта строка кода исправила ее.

Другие вопросы по тегам