2010-11-15 14 views
2

Mon script tente de se connecter à un site Web via un formulaire. Après avoir été redirigé plusieurs fois lors de l'authentification, il se bloque avec un paramètre illégal d'alerte sslv3. Je me demandais si quelque chose de bizarre se passait avec les cookies, donc j'ai vérifié les en-têtes HTML avec la sortie DEBUG. Les deux sorties sont collées ci-dessous.Ruby Mécanise les plantages lors de la redirection d'authentification; sslv3 alert paramètre illégal

D'autres choses étranges: les méthodes click_button et submit semblent faire des choses différentes; à savoir, click_button obtient l'exécution des redirections pour durer un peu plus longtemps, mais il se bloque également avec l'erreur ci-dessus. submit ne plante pas le programme, mais la connexion ne semble pas fonctionner non plus. J'ai essayé de l'exécuter sur une ancienne version de Ruby et l'erreur se transforme en une erreur connection_refused en utilisant click_button et le comportement est identique en utilisant submit.

Here are outputs I mentioned in the first paragraph in .txt, in case you find the text below difficult to read.

SORTIE DEBUG quand je lance le script:

 
`I, [2010-11-15T17:52:20.462201 #22853] INFO -- : follow redirect to: htps://xx2web1.apps.XXXXXXXXX.com/BANPROD1/xxauthent.ss_md5_login?timestamp_in=1289814682&uin_in=XXXXXXXXX&digest_in=be34b4b470a0da1831c7c432e353c320 
/usr/lib/ruby/1.9.1/net/http.rb:677:in 'connect': SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert illegal parameter (OpenSSL::SSL::SSLError) 
     from /usr/lib/ruby/1.9.1/net/http.rb:677:in 'connect' 
     from /usr/lib/ruby/1.9.1/net/http.rb:637:in 'do_start' 
     from /usr/lib/ruby/1.9.1/net/http.rb:632:in 'start' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize.rb:527:in 'fetch_page' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize.rb:611:in 'fetch_page' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize.rb:611:in 'fetch_page' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize.rb:464:in 'post_form' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize.rb:370:in 'submit' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize/form.rb:141:in 'submit' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize/form.rb:147:in 'click_button' 
     from ./courseChecker.rb:33:in 'block in ' 
     from /usr/lib/ruby/gems/1.9.1/gems/mechanize-1.0.0/lib/mechanize.rb:262:in 'get' 
     from ./courseChecker.rb:26:in ''` 

HTML TÊTES TRACE de connexion réussie Firefox:

 
`htps://xx2web1.apps.XXXXXXXXX.com/BANPROD1/xxauthent.ss_md5_login?timestamp_in=1289814134&uin_in=XXXXXXXXX&digest_in=d75483c390a2ab4ec0b939eaef7ecb1f` 

`GET /BANPROD1/xxauthent.ss_md5_login?timestamp_in=1289814134&uin_in=XXXXXXXXX&digest_in=d75483c390a2ab4ec0b939eaef7ecb1f HTTP/1.1 
Host: xx2web1.apps.XXXXXXXXX.com 
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Firefox/3.6.12 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
Referer: htps://eas.admin.XXXXXXXXX.com/eas/servlet/EasLogin?redirect=htps://webprod.admin.XXXXXXXXX.com/ssa/servlet/SelfServiceLogin?appName=com.XXXXXXXXX.aits.SelfServiceLogin&dad=BANPROD1 
Cookie: RedirectString=https://webprod.admin.XXXXXXXXX.com/ssa/servlet/SelfServiceLogin?appName=com.XXXXXXXXX.aits.SelfServiceLogin&dad=BANPROD1; EnterpriseSessionId=8cc56f29-28de-4a01-96b8-6f58c30d6b6e-155.69.191.54; TESTID=test` 

`HTTP/1.1 200 OK 
Date: Mon, 15 Nov 2010 09:42:03 GMT 
Server: Oracle-Application-Server-10g/10.1.2.3.0 Oracle-HTTP-Server 
Content-Length: 228 
Set-Cookie: SESSID=RTlCTzQ4MTc5NDAzOQ== 
Connection: close 
Content-Type: text/html; charset=UTF-8` 

Répondre

0

Avez-vous essayé d'obtenir Mechanize passer par un proxy, par exemple Charles, et regardez ce que son envoi par rapport à Firefox?

Il peut être configuré pour examiner les interactions https.

Amusez-vous, Chris