2012-11-01 58 views
2

即時通訊工作在我的公司網絡和開發他們的系統的新模塊。但是,他們已經使所有SSL證書無效,因此我不得不繞過證書驗證。Perl機械化繞過證書驗證,但遇到身份驗證/登錄

使用機械化的函數忽略SSL,

my $mech = WWW::Mechanize->new(
ssl_opts => { 
    verify_hostname => 0, 
}, 

我能夠繞過證書驗證,但我遇到以下錯誤 Error GETing https://192.168.100.82/login;jsessionid=legizzgnfjd6g73szziuhboc: Could not resolve view with name 'auth/login' in servlet with name 'mvc'

我不明白是否是因爲未接受的證書,我無法訪問https網站或者是我做錯了什麼。請幫助我瞭解發生了什麼問題。

是我連接到該網站是公司網絡

這裏內的模塊的網站是我的代碼初始化機械化忽略SSL後運行。

my $url = 'https://192.168.100.82'; 
$mech->get($url); 
die $mech->response->status_line unless $mech->success; 

回答

2

我發現能夠通過使用WWW :: Mechanize :: Firefox控制firefox來成功加載頁面。然而其缺點是它需要在能夠工作之前啓動Firefox瀏覽器。

我使用cpan安裝cpanm,它允許我安裝具有依賴關係的模塊,它會自動檢測這些依賴關係並將它們與選定的模塊一起安裝。

首先,運行install cpan(可選)更新cpan。並刷新reload cpan

然後通過輸入install App::cpanminus來安裝cpanm,並讓它做它的東西。之後,可以使用

。關閉cpan並在cmd中鍵入cpanm以啓動cpanm。 然後鍵入install WWW::Mechanize::Firefox。讓它完全下載所有內容

下一頁Firefox需要Mozrepl插件用於WWW :: Mechanize :: Firefox控制瀏覽器,以便轉到瀏覽器並獲取附加組件。

完成後,在工具下,從瀏覽器的工具標籤中啓動MozRepl,腳本準備啓動。

P.S. mechanize :: firefox對象仍然初始化爲verify_hostnames=>0

1

Could not resolve view with name 'auth/login' in servlet with name 'mvc'這是一個來自Spring Framework的錯誤消息。對我而言,這意味着您已通過證書檢查,您到達該網站並且無法使用有效的網絡會話(身份驗證)。我建議你替換;在URL中?傳遞JSESSIONID參數。

+0

即時通訊對不起,我不是很確定你的意思是什麼。我的網址中沒有分號。你的意思是這樣嗎? - >'的https://192.168.100.82/'? –

+0

我知道了:)事情是該網站需要身份驗證(使用用戶名和密碼登錄)。所以你需要在你手動啓動Mech之前做到這一點,並通過Cookie Jar將Cookie傳遞給Mech。另一種方法是在程序中包含驗證步驟(如果可能)。 –

+0

如何將我的身份驗證存儲在cookie中以傳遞給機器? –