настройка HTTP-запроса дайджеста с java-библиотекой

Итак, я пытаюсь подключиться к базе данных (владельцы сервера передают работу по настройке на аутсорсинг и не знают подробностей об этом) и у меня есть имя пользователя и пароль. Когда я пытаюсь подключиться к curl самым простым способом, мне отказывают.

curl --user "Имя пользователя:пароль" http://test.com

Когда я добавляю флаг --digest, он работает. Таким образом, рабочий запрос curl выглядит так:

curl --digest --user "Имя пользователя:пароль" http://test.com

Теперь проблема в том, что мне нужно закодировать это в java, и я действительно не понимаю, что делает флаг --digest. Я знаю о дайджест-аутентификации и алгоритме, но это то, что я не хочу реализовывать и не думаю, что мне это тоже нужно (основываясь на том факте, что у curl есть тривиальный флаг для этого, я ожидаю, что в java будет аналогичная работа). ). Кто-нибудь знает более простой способ сделать это? Есть ли какой-то заголовок, который я могу установить, который делает это? По сути, я хочу знать флаг --digest из эквивалента curl в java. Спасибо.


person TheVanGundys    schedule 06.03.2013    source источник


Ответы (2)


Библиотека Apache HttpClient поддерживает различные схемы аутентификации, но это не так просто, как установка флаг --digest.

Ознакомьтесь с соответствующей документацией здесь: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html

Конкретный пример упреждающей дайджест-аутентификации здесь: http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java

person zagyi    schedule 06.03.2013

Я не знаю, какое это имеет отношение к базе данных, но --digest включает дайджест-аутентификацию. Без него вы используете обычную аутентификацию.

http://curl.haxx.se/docs/manpage.html#--дайджест

Вот каноническая ссылка на то, что они оба означают, я посмотрю, смогу ли я найти что-то более удобное для читателя, и добавлю это, если найду.

http://tools.ietf.org/html/rfc2617

Это кажется немного проще для... ну... --переваривания :)

http://frontier.userland.com/stories/storyReader 2159 долларов США

И я также рекомендую HTTP-клиент Apache для выполнения http-запросов из java, хотя я не уверен из вашего введения вопроса, где вы упоминаете базы данных, если это действительно то, что вы хотите сделать.

person Gus    schedule 06.03.2013
comment
Спасибо. База данных была неудачным выбором слов. Я пытаюсь подключиться к серверу, на котором есть база данных. - person TheVanGundys; 06.03.2013