任何人都可以详细说明不同的内容吗?
我目前正在使用ntlmssp.authenticaten(jcifs)但似乎无法执行getPassword()。它始终返回null
答案 0 :(得分:4)
有区别。
使用Kerberos,您必须向您的域管理员询问您的网络应用的服务主体名称(SPN)。从本质上讲,这是Active Directory中的一个条目,其中包含一个加密密钥,可让您的Web应用程序解码身份验证请求。
使用NTLM,您无需管理员的配合。您的Web应用程序将从客户端(即浏览器)获取一些信息,它可以用来尝试登录到域控制器。来自客户端的信息不包括用户的密码 - 这太不安全了。相反,NTLM过滤器从域控制器获取挑战,将其传递给客户端。客户端使用挑战对密码进行哈希处理以创建响应。当此响应作为登录请求发送回域控制器时,域控制器将告诉jcifs过滤器密码是否正确。
某些jcifs类具有getPassword方法,因为它允许您直接从用户名和密码创建登录请求。如果您使用该方法,那么除了设置密码,您还可以检索它。但这不是您让浏览器为您进行身份验证时使用的方法,因此您将无法检索实际密码。