我们有JAVA JEE5企业应用程序,包括一个web模块和一个在glassfish上运行的app客户端。
我们需要针对活动目录设置身份验证。我知道为Web模块或应用程序客户端模块设置基于LDAP的身份验证很容易,但他们要求我们在启动应用程序客户端时从Windows登录中获取凭据,并且凭据以某种方式将凭据传播到ejb像往常一样。这不仅包括用户主体,还包括角色。
简而言之,我的问题是:JAAS可以插入桌面客户端的Windows身份验证机制而不会提示用户输入用户名和密码吗?
谢谢, 巴勃罗。
答案 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函数。