我正在嘗試爬行我擁有的舊 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 的實際機制有對於基於密碼的登入是“基本”或“摘要”,對於基於 Kerberos 的登入是“協商”;--http-user
如果您的網站使用其中之一,則該選項將起作用。
但是,您的網站很可能使用基於表單/cookie 的登入頁面,對於 HTTP 用戶端來說,該登入頁面與常規網頁的常規重定向完全沒有區別。獲取將不會能夠自動辨識並填寫這些表格。
如果是這樣的話,你怎麼辦可以要做的就是透過常規 Web 瀏覽器登錄,然後將必要的會話 cookie 複製到 wget 的「cookie jar」檔案(或可能直接使用傳遞它們--header
)。然後網站就會辨識出您已登入。
如果您在 Chrome 或 Firefox 中開啟“開發人員工具”→“網路”,每個網路請求都會有一個“複製為 cURL”選項,該選項為您提供完整的curl
命令列。尋找--header …
發送會話 cookie 的特定選項,並將其提供給 wget。