Net::LDAP add() 失败,没有错误消息。我如何找到记录未验证的原因?
Net::LDAP add() failed with no error message. How can I find the reason why the record did not validate?
当我在 Rails 应用程序上构建了一个 Ruby 来管理 LDAP 中的用户时,我把自己折磨了两天。在微调各种属性的包含和格式时,我经常会 ldap.add()
失败,除了可能引发异常外几乎没有反馈。我通常知道这是一个数据验证错误,例如缺少必需的属性或格式不正确的属性值——但我在服务器 (Apache DS) 或客户端上找不到任何指示 which 字段失败,或者 为什么 它失败了。
那么...您如何看待为什么 LDAP 添加(或替换、删除、打开...)失败的原因?
然后我偶然发现了 ldap.get_operation_result
,我有一个真正的面部表情时刻。我故意重现了几个我通过仔细检查 get_operation_result
在我的武器库中痛苦解决的问题,并且每次都准确描述了问题所在。
这个函数在挽救异常的情况下很有用,或者如果add()、modify()、delete()等只是returns false。
ldap.add(dn: dn, attributes: attributes)
Rails.logger.info("ldap.add: #{ldap.get_operation_result}")
上面的代码片段挽救了我的理智,更不用说数小时乏味的追捕测试了。
例如,这只是显示我没有提供所需 sn
属性的错误消息的一部分:
ERR_279 Required attributes [sn(2.5.4.4)] not found within entry uid=david,o=users,dc=example,dc=com"
它还会显示与错误的服务器连接凭据等相关的消息。
HTH
当我在 Rails 应用程序上构建了一个 Ruby 来管理 LDAP 中的用户时,我把自己折磨了两天。在微调各种属性的包含和格式时,我经常会 ldap.add()
失败,除了可能引发异常外几乎没有反馈。我通常知道这是一个数据验证错误,例如缺少必需的属性或格式不正确的属性值——但我在服务器 (Apache DS) 或客户端上找不到任何指示 which 字段失败,或者 为什么 它失败了。
那么...您如何看待为什么 LDAP 添加(或替换、删除、打开...)失败的原因?
然后我偶然发现了 ldap.get_operation_result
,我有一个真正的面部表情时刻。我故意重现了几个我通过仔细检查 get_operation_result
在我的武器库中痛苦解决的问题,并且每次都准确描述了问题所在。
这个函数在挽救异常的情况下很有用,或者如果add()、modify()、delete()等只是returns false。
ldap.add(dn: dn, attributes: attributes)
Rails.logger.info("ldap.add: #{ldap.get_operation_result}")
上面的代码片段挽救了我的理智,更不用说数小时乏味的追捕测试了。
例如,这只是显示我没有提供所需 sn
属性的错误消息的一部分:
ERR_279 Required attributes [sn(2.5.4.4)] not found within entry uid=david,o=users,dc=example,dc=com"
它还会显示与错误的服务器连接凭据等相关的消息。
HTH