Java JEE5应用程序。具有Windows身份验证且不提示输入用户名和密码的客户端

时间:2010-11-14 17:55:10

标签: java windows authentication glassfish jaas

我们有JAVA JEE5企业应用程序,包括一个web模块和一个在glassfish上运行的app客户端。

我们需要针对活动目录设置身份验证。我知道为Web模块或应用程序客户端模块设置基于LDAP的身份验证很容易,但他们要求我们在启动应用程序客户端时从Windows登录中获取凭据,并且凭据以某种方式将凭据传播到ejb像往常一样。这不仅包括用户主体,还包括角色。

简而言之,我的问题是:JAAS可以插入桌面客户端的Windows身份验证机制而不会提示用户输入用户名和密码吗?

谢谢, 巴勃罗。

2 个答案:

答案 0 :(得分:1)

我不了解详细信息或JAAS兼容性,但我相信SPNEGO和/或Integrated Windows Authentication是您正在寻找的内容。

答案 1 :(得分:0)

我还没试过,但这是从浏览器中提取NTLM用户名的代码示例:

http://www.rgagnon.com/javadetails/java-0441.html

但是,既然你在谈论桌面应用程序,你的问题可能是如何从你的java应用程序中获取用户名,因为NTLM确实没有参与。

http://www.roseindia.net/java/java-get-example/java-get-windows-username.shtml

基本上你只需使用:System.getProperty("user.name")

<强>更新

由于角色和所有角色都需要,你可能会发现使用JNI(http://download.oracle.com/javase/6/docs/technotes/guides/jni/)可能是你最好的选择,但是你将这个应用程序绑定到Windows,但听起来它无论如何都会像你一样然后可以从Java调用Windows API函数。