Java 如何以编程方式验证web表单的登录凭据?

Java 如何以编程方式验证web表单的登录凭据?,java,javascript,gwt,credentials,Java,Javascript,Gwt,Credentials,我正在开发一个应用程序,允许用户从大学系统导出数据。目前,他们可以登录并查看HTML格式的数据,但我想让人们以CSV格式下载 我有一个用户提供用户名和密码的应用程序。我想登录到大学系统和HTML刮结果页面。我该怎么做 我正在构建一个GWT应用程序。我可以在客户机上用Java音译JS实现,也可以在服务器上用Java实现 更新:Selenium可能不错,但看起来有些过分。我不太确定GWT,但一般来说,您会采用用户提交的表单数据,对照用户名和哈希密码数据库进行检查。如果数据库已签出,请设置一个会话co

我正在开发一个应用程序,允许用户从大学系统导出数据。目前,他们可以登录并查看HTML格式的数据,但我想让人们以CSV格式下载

我有一个用户提供用户名和密码的应用程序。我想登录到大学系统和HTML刮结果页面。我该怎么做

我正在构建一个GWT应用程序。我可以在客户机上用Java音译JS实现,也可以在服务器上用Java实现


更新:Selenium可能不错,但看起来有些过分。

我不太确定GWT,但一般来说,您会采用用户提交的表单数据,对照用户名和哈希密码数据库进行检查。如果数据库已签出,请设置一个会话cookie,说明用户已登录


在页面中,检查会话cookie是否显示用户已登录。如果没有,请重定向到登录页面,否则允许他们查看pagfe。

我很确定,网络浏览器中的跨站点脚本保护将意味着您无法使用网络浏览器中运行的javascript登录到大学的应用程序。因此,从大学获取数据的程序部分需要在服务器上运行。一旦你有了数据,你可以在你的服务器上或者在浏览器中用javascript来处理它,但是我认为在服务器上处理会更容易


请参见,除非域相同,否则必须从服务器执行此操作。您需要确定另一台服务器在登录步骤中使用的POST事务是什么样子的-参数名称等。然后您将执行该操作,并根据返回的内容执行任何操作。如果您需要查看多个页面,还需要维护相应的会话cookie,以便服务器知道您仍在登录后续的HTTP请求。

如果您必须访问另一个站点来验证凭据,那么我不确定人们是否愿意向您提供这些凭据。也就是说,如果您没有直接检查凭据的权限,那么为什么您可以可靠地接收凭据?我知道有时候人们需要与他们不拥有的系统集成,所以这只是一个问题

首先,这必须在服务器端完成,因为客户端脚本的限制是由

处理您提到的“屏幕抓取”的典型方法是将网页视为XML服务。首先,检查页面的源代码,然后使用internet/HTTP堆栈,将帖子发送到正确的URL,并使用标准XML库读取响应。需要一些独创性才能找到一种好方法来深入研究XML,以找到您需要的部分,该部分将尽可能与页面的更改隔离开来。请记住,当网站所有者更改其页面时,您的系统可能会随时中断

有时,您不能只发送邮件,而是必须先请求空白页,以便获得需要在帖子中返回的值的隐藏形式。你必须进行实验,找出它需要什么

此外,您可能还必须处理cookie,因为cookie通常是网站身份验证和会话管理的一个组成部分(不过您可能会幸运地发现,会话在最初发布和第一次响应之间并不重要)

最后,您可能很不幸,该站点使用javascript来完成部分身份验证工作,这可能需要额外的挖掘来了解凭据是如何发布到该站点的


还有其他潜在的障碍,例如网站检查以确定推荐人是他们自己的网站,可能使用SSL(HTTPS)等等。

这不是我的数据库-我试图让用户从大学系统中提取数据,而我只是第三方。大学是否提供身份验证系统?OAuth还是其他?