我正在研究用Java编写的服务器,以及在同一网络上的Windows机器上运行的客户端(用.Net编写的桌面应用程序)。我希望有一些基本的身份验证,以便服务器可以确定运行客户端的用户的用户名,而无需用户在客户端重新输入他们的Windows密码。
这是可能的,实现它的最简单方法是什么?
我查看了一些可用的API,看起来好像Java中的org.ietf.jgss包和.Net中的NegotiateStream类,应该可以相互通信来实现这一点 - 但是我继续打击令人沮丧的错误消息,我不明白。我以为我会检查这是否是正确的方法,如果是的话,我会发布一个单独的问题,详细说明有关的错误:)
答案 0 :(得分:3)
这种方法是正确的。但请注意一些事情:
答案 1 :(得分:0)
如果您使用的是Active Directory,我认为Spring LDAP module可以为您提供访问凭据的好方法。
答案 2 :(得分:0)
不熟悉GSS机制。我建议在无密码ssh中使用共享密钥机制。
答案 3 :(得分:0)
这个开源库http://spnego.sourceforge.net正是您正在寻找的。它在服务器上实现了一个HTTP Servlet Filter,以便您的web-app可以调用request.getRemoteUser()来查找用户名。