【问题标题】:Jsoup authentication failedJsoup 认证失败
【发布时间】:2014-10-12 14:52:11
【问题描述】:

我正在尝试使用以下代码连接此网站:https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=1

Connection.Response response = Jsoup.connect("https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&flags=0&forcedownlevel=0&formdir=1&username=XXX&password=XXX&trusted=4&SubmitCreds.x=36&SubmitCreds.y=7&SubmitCreds=Ouvrir+une+session")
                        .method(Connection.Method.GET)
                        .execute();

                Document Doc = Jsoup.connect("https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=1")
                        .data("username","myusername")
                        .data("password","mypassword")
                        .data("curl","Z2F")
                        .data("flags","0")
                        .data("forcedownlevel","0")
                        .data("formdir","1")
                        .data("trusted","4")
                        .data("SubmitCreds.x","40") //Seems to send the coordinates of the cursor
                        .data("SubmitCreds.y","12") //Seems to send the coordinates of the cursor
                        .data("SubmitCreds","Ouvrir une session")
                        .cookies(response.cookies())
                        .post();
                Log.e("Body", Doc.body().toString());

但是显示的“Body”仍然是认证页面(Logcat中没有错误) 怎么了?

这里是连接的详细信息,通过 Chrome 的控制台获取

Remote Address:85.90.60.205:443
Request URL:https://ent.enteduc.fr/CookieAuth.dll?Logon
Request Method:POST
Status Code:302 Moved Temporarily
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:165
Content-Type:application/x-www-form-urlencoded
Cookie:ISAWPLB{FE9B5C07-18E7-4D86-BC7C-2F0AFE4F36BF}={8A3F320B-C8EB-40F9-A11E-D036A91F953F}; __utma=136247269.742318163.1408441429.1408445338.1408450626.3; __utmb=136247269.5.10.1408450626; __utmc=136247269; __utmz=136247269.1408441429.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); WSS_KeepSessionAuthenticated=; logondata=acc=0&lgn=*********
Host:ent.enteduc.fr
Origin:https://ent.enteduc.fr
Referer:https://ent.enteduc.fr/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=1
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
Query String Parametersview sourceview URL encoded
Logon:
Form Dataview sourceview URL encoded
curl:Z2F
flags:0
forcedownlevel:0
formdir:1
username:myusername
password:mypass
trusted:4
SubmitCreds.x:53
SubmitCreds.y:12
SubmitCreds:Ouvrir une session
Response Headersview source
Connection:close
Content-Length:0
Location:https://ent.enteduc.fr/
Set-Cookie:cadata6A45CD714D774496A399F96AC521E21E....

【问题讨论】:

  • 我冒昧地掩盖了您帖子中的用户名和密码。公开发布时请小心。
  • 我不确定它为什么会失败。有没有与真实账户绑定的测试用户名和密码?我们可以尝试使用它登录并为您提供帮助。

标签: java android authentication cookies jsoup


【解决方案1】:

您的代码没有任何问题。有用。我尝试了您提供的默认用户名和密码。这就是网站所做的......

  • 您登录成功,它会向路径 / 发送一个 HTTP 302,并为您提供一个 cookie 来识别您。

HTTP/1.1 302 Moved Temporarily Location: https://ent.enteduc.fr/ Set-Cookie: XXX

  • 浏览器请求/,服务器响应另一个HTTP 302

HTTP/1.1 302 Found Connection: Keep-Alive Location: /etabs/0680001F/Pages/Accueil.aspx

  • 请求 /etabs/0680001F/Pages/Accueil.aspx 会导致 200 OK 以法语编写的 HTML 内容。原谅我! Je ne parle pas francais。

更改您的代码以遵循重定向并在每个步骤中设置 cookie,您应该没问题。

[编辑]

完成后,请删除您在此帖子中提供的身份验证信息。

【讨论】:

  • 感谢您的耐心等待。我已经删除了身份验证信息。但没有设法获得经过身份验证的页面的 html。我没有找到在我的第一个代码中要更改的内容。
  • 不要阅读正文。而是获取响应 HTTP 状态代码并检查它是否为 302。如果是,则遵循 Location 标头并发出另一个请求。这样做直到你登陆/etabs/0680001F/Pages/Accueil.aspx
  • 对于ent.enteduc.fr/…,我得到一个 200 代码,对于 ent.enteduc.fr,一个 IOException:“未找到身份验证挑战”
  • 其实好像没有设置cookie,根据这个: response = Jsoup.connect("ent.enteduc.fr/…) .method(Connection.Method.GET) .execute(); 记录。 e("Status1", String.valueOf(response.statusCode())); //返回 200 Log.e("Cookies", String.valueOf(response.cookies())); //返回 {}
  • 确实很奇怪。你能拦截你的程序和站点之间的流量并确认没有Set-Cookie header 吗?
猜你喜欢
  • 1970-01-01
  • 2021-03-07
  • 2019-09-03
  • 2016-05-30
  • 2014-07-19
  • 2015-10-17
  • 2021-05-11
  • 2012-07-22
  • 1970-01-01
相关资源
最近更新 更多