0

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

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

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

谢谢,巴勃罗。

4

2 回答 2

1

我不知道细节或 JAAS 兼容性,但我相信SPNEGO和/或集成 Windows 身份验证是您正在寻找的东西。

于 2010-11-14T19:37:52.480 回答
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 函数。

于 2010-11-14T18:47:11.923 回答