1

Я пытаюсь сканировать старый сервер Reviewboard, которым я владею, чтобы я мог создать статическую копию и заархивировать ее, и я делаю это, используя wget в соответствии с рекомендациями нескольких людей, используя рекомендованный способ сканирования и загрузки сервера, например, так :

wget --recursive --no-clobber --page-requisites --html-extension --convert-links --domains $DOMAIN --http-user $USERNAME  --ask-password $THE_SERVER

Однако серверу требуется авторизованный LDAP-вход, поэтому все, что я когда-либо получаю, это страница входа и некоторые связанные файлы. Та же проблема возникает, если я просто использую --user а не --http-user .

Мой вопрос: могу ли я выполнить аутентификацию LDAP с помощью wget, и если да, то как?

Так как я уверен, что эти комментарии появятся:

  1. Я уже сделал JSON-архив с использованием rb-tools, но я бы предпочел статическую веб-копию.
  2. У меня есть возможность разрешить анонимный доступ только для чтения, потому что я администратор на сервере, но я бы хотел этого избежать, если это возможно.

1 ответ1

1

LDAP не является механизмом аутентификации - это просто серверная часть хранилища учетных записей; по сути, это то же самое, что хранение учетных записей в MySQL или что-то подобное. Таким образом, не существует такого понятия, как "аутентификация LDAP" в отношении клиентов HTTP.

Фактические механизмы HTTP имеет являются "Basic" или "Дайджест" на основе пароля входа в систему, или "Согласование" для входа в систему Kerberos на основе; --http-user будет работать, если ваш сайт использует один из них.

Тем не менее, ваш веб-сайт, скорее всего, использует страницу входа на основе форм / файлов cookie, которая для клиентов HTTP совершенно неотличима от обычного перенаправления на обычную веб-страницу. Wget не сможет автоматически распознавать и заполнять эти формы.

Если это так, то вы можете войти через обычный веб-браузер, а затем скопировать необходимые сеансовые куки в файл wget "cookie jar" (или, возможно, передать их напрямую с помощью --header). Тогда сайт узнает, что вы вошли в систему.

Если вы откроете "Инструменты разработчика" → "Сеть" в Chrome или Firefox, каждый сетевой запрос будет иметь опцию "Копировать как cURL", которая дает вам полную командную строку curl . Найдите конкретную --header … которая отправляет ваш сессионный cookie, и передайте его wget.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .