如何从Java / JNDI向Windows用户查询LDAP的电子邮件?

时间:2013-04-11 14:22:32

标签: java ldap jndi

我在网上搜索过但找不到任何解决方案 此外,我尝试了很多不同的解决方案,但都没有 在这种情况下,请保持开放的态度。

要求:

  • 应该使用Java / J2SE(控制台,GUI,任何)。
  • 请勿使用任何外部或第三方jar /包JNDI。
  • 请勿询问或存储用户密码。
  • 从Windows登录用户处获取电子邮件。

假设:

  • 不需要深入了解LDAP服务器的细节,它正在使用其他语言,如VBS / .Net /等。但不是Java。

注意:

  • 这条VBS甚至正在寻找其他用户(不是登录的用户)。

    我不了解LDAP服务器配置,但上述信息对于那些知道它的人来说应该是有意义的。

一块正常工作的VBS代码:

Dim objSysInfo, objUser<br>
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
MsgBox objUser.mail

如何让它发挥作用?

2 个答案:

答案 0 :(得分:2)

这里的问题不是JNDI部分,而是以ADSystemInfo.UserName提供的格式获取用户的登录名。您可以看到System.getProperty("user.name")是否返回正确的内容,否则您将进入某些ActiveX Bridge来模拟您发布的VB代码。

LDAP部分只是直接映射到JNDI,你应该对该部分没有任何问题。

答案 1 :(得分:1)

Windows和VBS API使用“SASL GSSAPI机制实现单点登录(SSO)”从客户端到Active Directory服务器。

有许多版本的Windows Active Directory和无数不同的方法,可以在您的实现中设置各种参数。所以你的成功可能会有所不同。

我发现了一篇可能有助于指明正确方向的文章: http://dmdaa.wordpress.com/2010/04/10/utilize-sasl-gssapi-mechanism-to-achieve-single-sign-on-sso-for-jndi-ldap-client/