【问题标题】:Net::LDAP add() failed with no error message. How can I find the reason why the record did not validate?Net::LDAP add() 失败,没有错误消息。如何找到记录未验证的原因?
【发布时间】:2017-04-18 19:25:31
【问题描述】:

我花了两天时间构建了一个 Ruby on Rails 应用程序来管理 LDAP 中的用户。在微调各种属性的包含和格式时,我经常让ldap.add() 失败,除了可能引发异常之外几乎没有反馈。我通常知道这是一个数据验证错误,例如缺少必需的属性或格式错误的属性值 - 但我在服务器 (Apache DS) 或客户端上找不到任何可以指示 which字段失败,或为什么失败。

那么...您如何看待为什么 LDAP 添加(或替换、删除、打开...)失败的原因?

【问题讨论】:

    标签: ruby ldap netldap


    【解决方案1】:

    然后我偶然发现了ldap.get_operation_result,我有一个真正的面部护理时刻。我故意重新创建了几个我通过仔细检查我的武器库中的get_operation_result 痛苦地解决的问题,并且每次它都准确地描述了问题所在。

    这个函数在救援异常的情况下很有用,或者如果add()、modify()、delete()等简单地返回false。

     ldap.add(dn: dn, attributes: attributes)
     Rails.logger.info("ldap.add: #{ldap.get_operation_result}")
    

    上面的 sn-p 挽救了我的理智,更不用说数小时的繁琐的狩猎和啄食测试了。

    例如,这里只是显示我没有提供所需的sn 属性的错误消息的一部分:

    ERR_279 Required attributes [sn(2.5.4.4)] not found within entry uid=david,o=users,dc=example,dc=com"
    

    它还会显示与错误的服务器连接凭据等相关的消息。

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 2016-02-08
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      相关资源
      最近更新 更多