想实现在访问某个JSP站点时使用WINNT域帐户来做身份验证。使用户在访问JSP站点时,弹出WINNT域验证对话框,
当用户输入的帐号和密码正确时,再由JSP的系统来验证用户名是否存在,如果存在就登录成功。目的是使企业内部员工都使用WINNT域帐户来登录企业内的所有WEB(JSP)系统,只要有WINNT域帐号,并且访问的这个WEB系统中有此域用户名,就可以登录。有看到过其它企业有做过这种应用,但是不知道是怎样实现的。请各位朋友给出建议,谢谢~!!
当用户输入的帐号和密码正确时,再由JSP的系统来验证用户名是否存在,如果存在就登录成功。目的是使企业内部员工都使用WINNT域帐户来登录企业内的所有WEB(JSP)系统,只要有WINNT域帐号,并且访问的这个WEB系统中有此域用户名,就可以登录。有看到过其它企业有做过这种应用,但是不知道是怎样实现的。请各位朋友给出建议,谢谢~!!
解决方案 »
- 为什么我每次deploye就出错而且数据库会被清空?
- 关于jbpm4 业务日历的配置
- 在linux上如何查看java jvm是多少位?
- 请教一个使用Struts的Logic:iterate标签后页面反应慢的问题!
- war包在xp上运行成功,在2000运行失败(IDE都一样)
- 救急啊,struts的问题,太蹊跷了,都来看看吧.
- 关于try/catch用法的疑惑!等高手!!(88分)
- 想请教一下 SessionBean 与 本地接口、远程接口之间的关系。
- 怎么样学习J2EE ???
- mysql多实例多端口应用程序连接不上除3306端口外的端口,但远程连接都成功,就是应用程序不行如jdbc
- basecontroller 和 simpleformcontroller的区别?
- SSH整合时出的错误,高手给看一下啊
http://zzhaha411.blog.163.com/blog/static/3042160220094611027723/
http://www.sawin.cn/doc/SP/Java/TheEdge202.htm
进行验证就可以了。
嗯,我也是这么想的。我具体的想法是以下步骤:
1.域验证:通过Tomcat+IIS,使访问站点时需要先通过NT域验证输入的用户名和密码在域中是否存在;
2.WEB系统验证:域验证通过时再取出输入的用户名,看WEB系统中是否有相应的用户存在(此时不验证密码);
3.WEB系统中存在用户则用户登录验证通过,取出此用户对应权限等等....我试着使用Tomcat+IIS,IIS里面的站点可以设定使用windows域验证。
现在已经实现访问WEB(JSP)站点时会弹出NT域验证提示,输入正确的域用户名和密码可以访问站点的登录页。问题是,我在域验证对话框中输入的用户名没有办法获取?那么也就没有办法去获得这个用户在这个系统中对应的权限等等...
不过这篇帖子是讲的ASP.NET的东东.兄弟们,帮忙顶一个吧!
又只能自己个顶了。
用JCIFS实现单点登录
1。首先从http://jcifs.samba.org 这个站点下载最新的jar包。
2。把这个包放到相应的lib文件下面。
3。对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.0.11</param-value>
</init-param>
</filter><filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>注:192.168.0.11是你AD服务器
4.然后在你的登陆的代码中使用request.getRemoteUser();来获取当前登录的用户名。
http://jcifs.samba.org/
很多公司都希望WEB登陆与域用户结合起来,实现单点登陆,使用jcifs.jar可以非常好实现,下载一个最新的jcifs.jar,放到WEB-INFlib下面,现在是1.27版,然后修改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.0.90</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
192.168.0.90是你AD服务器,然后在你的登陆的代码中使用
request.getRemoteUser(),就可以得到当前域用户的用户名了