2

我使用 Samba 来实现 Window AUthentication。在我的 web.xml 我把这个

<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>

<init-param>
    <param-name>jcifs.http.domainController</param-name>
    <param-value>192.168.1.101</param-value>
</init-param>

<!--
    always needed for preauthentication / SMB signatures
-->
<init-param>
    <param-name>jcifs.smb.client.domain</param-name>
    <param-value>NYC-USERS</param-value>
</init-param>
<init-param>
    <param-name>jcifs.smb.client.username</param-name>
    <param-value>somenycuser</param-value>
</init-param>
<init-param>
    <param-name>jcifs.smb.client.password</param-name>
    <param-value>AReallyLoooongRandomPassword</param-value>
</init-param>
</filter>

<filter-mapping>
    <filter-name>NtlmHttpFilter</filter-name>
    <url-pattern>/admin/*</url-pattern>
</filter-mapping>

一旦我在管理文件夹中运行页面,窗口登录框就会弹出。我应该输入什么用户名和密码,因为目前我在管理员帐户下运行。我不太明白,谁能给我解释一下?

<init-param>
    <param-name>jcifs.smb.client.username</param-name>
    <param-value>somenycuser</param-value>
</init-param>
<init-param>
    <param-name>jcifs.smb.client.password</param-name>
    <param-value>AReallyLoooongRandomPassword</param-value>
</init-param>

我可以设置用户名和密码吗?

4

4 回答 4

1

这是一个开源库http://spnego.sourceforge.net,它也支持集成的 Windows 身份验证/sso。

该库的项目页面有一些示例和安装说明。

于 2009-11-16T09:46:32.850 回答
1

使用 NTLM 身份验证时,您使用 Windows 域进行身份验证,这在具有 MS 域控制器的本地 Intranet 中很有用。如果您在 web.xml 中正确配置了域控制器,您将能够使用您的 windows 登录用户名和密码对网站进行身份验证,假设您通过您在 web.xml 中配置的同一个域登录您的浏览器可能配置为自动进行身份验证某些站点,对于 IE,这通常会在本地网络上的站点默认发生(取决于安全设置)。在 Firefox 中,这不会自动发生,您需要使用 about:config 的“network.automatic-ntlm-auth.trusted-uris”设置为每个站点启用它。

重要的是要注意 NTLM 身份验证无论多么简单都被认为是不安全的,并且通过对不受信任的服务器进行身份验证,该服务器很容易从您发送给它的身份验证信息中恢复您的密码。

于 2009-09-28T09:00:25.510 回答
1

由于您以本地管理员身份登录,因此不会传输 jcifs 所需的标头。所以它失败了,您需要使用有效用户登录域。

通常它应该与您的用户/密码组合一起使用。如果不尝试用户名:域\用户名(确保在那里使用反斜杠)。

用户名必须在 jcifs.http.domainController 中定义的域控制器上设置

于 2009-08-05T02:26:38.437 回答
0

NTLM 明确区分了用户和域\用户,因此请确保在身份验证请求中包含域。

于 2009-09-27T15:49:20.217 回答