2012-11-01 35 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中以传递给机器? –