如何使用系统凭据自动登录该站点?

我需要为Intranet用户开发一个Web应用程序。 我不希望他们每次访问网站时都输入登录凭据。 它应该从系统用户名和密码自动加载。 即如果他们拥有有效的系统用户名和密码,他们应该能够登录该应用程序。 我正在使用Java。 如何满足这个要求?

您正在寻找的是Windows集成身份validation。 为了能够实现它,您的服务器需要支持针对Active Directory的身份validation(使用Kerberos),并配置为使用WWW-Authenticate:NTLM或Negotiate标头响应来自浏览器的未经身份validation的请求。

我不知道如何做到这一点,不知道你正在使用什么服务器平台。 但假设您的平台支持JAAS,这里有一篇博文,介绍了如何配置它 – http://webmoli.com/2009/08/29/single-sign-on-in-java-platform/

您可以尝试华夫cookies华夫饼单点登录。
您可以使用华夫cookies实现自动身份validation。 我用它来做内网webapp项目。 要从Active Directory获取更多信息,可以使用COM4J COM4J

您可以使用华夫cookies和COM4J来解决此问题。 你需要记住的是华夫cookies仅适用于Windows凭据。 您可以在UI端代码中使用waffle api进行自动登录。 如果要在java端编写自动登录代码,COM4J api非常有用。

SSO(单点登录)可用于使用系统凭据自动登录。 Waffle用于在活动目录上实现SSO。 它在本地计算机和活动目录之间进行协商。 但是,一旦用户通过身份validation,就无法使用Waffle检索所有参数。 因为可以使用Com4j 。

如果它特定于“Windows”,则可以使用NTLM身份validation。 例如http://davenport.sourceforge.net/ntlm.html
我不确定这是否有帮助,但你可以看看如何使用HTTP客户端http://hc.apache.org/httpclient-3.x/authentication.html#NTLM

NTLM凭据可以传递到支持SPNEGO(Kerberos)或NTLM身份validation(两者都构成Windows本地身份validation)的服务器。 不幸的是,默认情况下,很多此类服务器都不支持此function。 Microsoft IIS就是这样一种服务器,它支持您需要的身份validation模式。

据我所知,在Java Web应用程序中实现这一点,将要求您在应用程序服务器上validation对WNA的支持。 例如,WebLogic Server确实在某种程度上支持这一点,但需要Microsoft IIS Web服务器来支持它。

Single Sign On解决方案还可能支持针对Microsoft Active Directory的凭据validation,但无缝集成的性质可能因产品而异。

此外,使用中的浏览器也很重要。 自IE 5以及某些版本的Firefox以来,WNA可用。 自第5版起,它似乎可以在Google Chrome中使用 。 NTLM身份validation最初也是在Opera 9中引入的。

使用简单的ftpclient(apache提供一个)来复制文件。 它会提供更好的性能