首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LDAP Java开发

LDAP Java开发
EN

Stack Overflow用户
提问于 2011-08-02 12:13:03
回答 3查看 2.6K关注 0票数 1

我有三个与LDAP和Java相关的问题。

  1. 有没有办法使用Java在windows活动目录上找到新创建的用户?现在,我从active目录循环中获取所有用户,并使用whencreated属性标识新用户。
  2. 和上一次一样,有没有办法用Java找到最近在active目录上修改的用户属性(比如名字更改或电子邮件更改)?目前,我正在使用whenchanged属性进行标识。
  3. 是否有任何方法来识别关于用户的信息是锁定/解锁的,或者他是这样处于活动/非活动状态?
EN

回答 3

Stack Overflow用户

发布于 2011-08-02 14:11:03

LDAP 搜索 过滤器应该为您提供所需的服务。

  1. 使用(&(objectClass=user)(whenCreated>=20110701000000.0Z))在2011年7月1日或之后创建用户帐户。
  2. 使用(&(objectClass=user)(whenChanged>=20110701000000.0Z))在2011年7月1日或之后更改用户帐户。
  3. 使用(&(objectClass=user)(whenChanged>=20110701000000.0Z)(userAccountControl:1.2.840.113556.1.4.803:=2))使帐户在2011年7月1日或之后更改,并且已被禁用。使用位滤波 匹配规则标识符检查特定的标志

如果经常执行这些查询,您可能需要索引 whenCreatedwhenChanged属性。

票数 2
EN

Stack Overflow用户

发布于 2011-08-02 12:18:49

1) LDAP是一种协议,在这种协议中,您不能(据我所知)对结果进行手动排序(在您的情况下,用Java)。您可能会发现的另一件事是搜索存储在它自己的字段中的值,如Active Directory中的msSFU30MaxUidNumber,以获得AD中最大的UNIX。

编辑:如@所指出的,如果LDAP服务器支持排序,则可以指定排序。在Java中,看看javax.naming.ldap.SortControl

2)我认为这和1一样。

3)是的,请看userAccountControl字段。它包含可以在这里找到的值:http://support.microsoft.com/kb/305144,例如ACCOUNTDISABLE (2)。

票数 1
EN

Stack Overflow用户

发布于 2011-08-02 12:53:37

通过持久搜索的Active 是否支持在更改时通知LDAP客户端? (但请注意,每个连接的搜索限制为5次)。我个人从未使用过这种方法,但是有一些例子是这里这里这里 (特别要注意的是,Active显然对这些搜索使用了不同的OID。请注意,对ADD的监视是非常直接的,但是修改将需要您的Java应用程序进行一些工作,因为Active Directory会在任何修改操作上发送修改通知,而不管属性如何。

@raddeman对于锁/解锁和启用/禁用是完全正确的。userAccountControl上的简单按位操作将帮助您提取这些值(例如,userAccountControl & 2 == 2表示用户已被禁用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6911883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档