发现使用windows密码验证的方式

shangqiao 2004-11-01 06:29:48
http://www.theserverside.com/blogs/showblog.tss?id=ServletApp

但是我照着文章上弄好一个多小时也没有搞定,哪位兄弟搞定了知会一声,谢谢先!以前没有弄过java密码学方面的
...全文
181 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
abcdhy 2004-11-03
  • 打赏
  • 举报
回复
谢谢 riverwater(小河流水)

收藏一下,一会研究研究
abcdhy 2004-11-02
  • 打赏
  • 举报
回复
windows 使用的是 NTLM 验证.
这个在网上有一个 JCIFS 项目,专门处理 NTLM 验证.

但我看了一下,还是不会用!

你去看看,把使用方法共享一下,谢谢!
riverwater 2004-11-02
  • 打赏
  • 举报
回复
接着尝试使用域的方式,即:
<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>

<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>NYC-USERS</param-value>
</init-param>
<init-param>
<param-name>jcifs.netbios.wins</param-name>
<param-value>10.169.10.77,10.169.10.66</param-value>
</init-param>
</filter>

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

结果以失败告终,因为我这里的网络架构比较宽松,没有域控制器,使用工作组代替域的时候,根本没有办法认证,得出UnknownHostException这个错误,这点是可以接受的。所以也不为过。
但是可以猜测,jcifs.smb.client.domain应该指的是域名,而jcifs.netbios.wins就应该是相应的Wins服务器了,一般来说这里填写域控制器的IP,我想应该没有问题。

没有域的wins都不知道是哪里,所以我根本没有办法试验喽~~~
riverwater 2004-11-02
  • 打赏
  • 举报
回复
哦,接着说:
如果我指定的局域网的另外一台nt计算机,同样可以实现认证。刚才测试了一下没有问题。
多个人访问,也完全可以彼此区分,无论是否使用相同用户名访问。
仔细追究原因,找到答案,这个jar文件是通过虚拟一个名为:JCIFS***_&&_%%的用户来访问认证计算机进行认证的。其中***表示当前tomcat计算机的IP的第一位,&&表示最后一位,%%是一个序列数
当然,这些是根据实际表征看出来的结果,具体是不是还不得而知。
riverwater 2004-11-02
  • 打赏
  • 举报
回复
初步尝试了一下,以我目前条件测试成功。现在简略说明一下我的实现步骤。
具体官方文档在下面链接
http://jcifs.samba.org/src/docs/ntlmhttpauth.html

具体实现是,在自己的web.xml中配置filter,因为手头没有域控制器,所以采用了他共享目录检测权限的方式。即下面这种,其中192.168.2.15为待检测计算机的IP,JCIFSACL是待检测目录,在web.xml中添加上如下语句后,重新启动tomcat,然后访问web连接 http://192.168.2.15:8080/testjcifs(testjcifs为我的web别名),即出现登录对话框。再次访问就不会出现了。
即:经过认证一次以后就不会再次出现该对话框。


<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.2.15</param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.logonShare</param-name>
<param-value>JCIFSACL</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
相关推荐
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2004-11-01 06:29
社区公告
暂无公告