自分が所有する古い 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
。
私の質問は、wget を使用して LDAP 認証を実行できるかどうか、また実行できる場合、その方法を教えてください。
きっと次のようなコメントが出てくると思います:
- すでに rb-tools を使用して JSON アーカイブを作成しましたが、静的な Web コピーを強く希望します。
- 私はサーバーの管理者なので、匿名の読み取り専用アクセスを許可するオプションがありますが、可能であればそれを避けたいと思います。
答え1
LDAPは認証ではない機構– それは単なるアカウントですストレージバックエンド; 本質的には、MySQL などにアカウントを保存するのと同じです。したがって、HTTP クライアントに関する限り、「LDAP 認証」というものは存在しません。
HTTPの実際のメカニズムもっているパスワードベースのログインの場合は「Basic」または「Digest」、Kerberos ベースのログインの場合は「Negotiate」です。この--http-user
オプションは、Web サイトでこれらのいずれかを使用している場合に機能します。
ただし、あなたのウェブサイトはフォーム/クッキーベースのログインページを使用している可能性が高く、HTTPクライアントにとっては通常のウェブページへの通常のリダイレクトとまったく区別がつきません。Wgetしないそれらのフォームを自動的に認識して入力できるようになります。
もしそうなら、あなたができた通常の Web ブラウザ経由でログインし、必要なセッション クッキーを wget の「cookie jar」ファイルにコピーします (または を使用して直接渡します--header
)。すると、Web サイトはログインしていることを認識し始めます。
Chrome または Firefox で「開発者ツール」→「ネットワーク」を開くと、各ネットワーク リクエストに「cURL としてコピー」オプションがあり、完全なcurl
コマンド ラインが表示されます。セッション クッキーを送信する特定のオプションを見つけて--header …
、それを wget に渡します。