【问题标题】:Spring LDAP and MemberOfSpring LDAP 和 MemberOf
【发布时间】:2015-10-23 17:04:42
【问题描述】:

我实际上正在构建一个使用 Spring (http://projects.spring.io/spring-ldap/) 处理 LDAP 的应用程序

我在尝试修改 memberOf 属性时遇到了一些问题。

事实上,当我修改我的用户而不修改 memberOf 属性时,修改是非常小心的。

当我尝试使用 List(String) 修改我的 memberOf 属性时:

CN=Administrateurs,CN=Builtin,DC=<dc>,DC=<dc>
CN=Utilisateurs,CN=Builtin,DC=<dc>,DC=<dc>

,我遇到了类似这样的错误:

javax.naming.OperationNotSupportedException : Error while updating user XXX YYY - matricule AAAAAAA: [LDAP: error code 53 - 0000209A: SvcErr: DSID-031A10E7, problem 5003 (WILL_NOT_PERFORM), data 0

从现在开始:

  • 我在 LDAP 上拥有 root 权限
  • 我可以修改其他属性,但不能修改这个
  • 我以良好的格式发送值(具有良好条目的列表(字符串))

【问题讨论】:

    标签: java spring ldap spring-ldap


    【解决方案1】:

    memberOf 属性对您来说是只读的。当您将roleOccupantuniqueMember 添加到组时,它会自动维护,具体取决于您的架构。那就这样做吧。

    【讨论】:

    • 只在那个方向(组=>用户)?没有办法让它从用户到组工作?
    • 真的是只读的吗?因为我读过它是一个操作属性,需要更多的努力来阅读它。
    • @zygimantus 是的,它对您来说是只读的;是的,它是一个操作属性;是的,除非您特别要求,否则不会返回操作属性。你的观点?
    【解决方案2】:

    由于您没有提供任何代码,因此很难在您的案例中找出确切的问题,但是在使用表示可分辨名称的属性(例如 memberOf 属性)时,您需要格外小心:更新以避免重复。

    简而言之,您需要通过使用 Name 实例而不是纯字符串来告诉 Spring LDAP 此特定属性表示可分辨名称。

    参考文档here(适用于非 ODM 解决方案)和 here(适用于 ODM)中描述了问题(和解决方案)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 2017-09-05
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多