Net :: LDAP add()失败,没有错误信息。我如何找到记录未验证的原因?
问题描述:
因为我构建了一个管理LDAP中用户的Ruby on Rails应用程序,所以我打了两天。在微调各种属性的包含和格式的同时,我经常会有ldap.add()
失败,并且除了可能引发的异常外,几乎没有反馈。我通常知道这是一个数据验证错误,例如缺少必需的属性或格式不正确的属性值 - 但我无法在服务器(Apache DS)或客户端找到任何可能表明字段失败的或为什么这是失败的。Net :: LDAP add()失败,没有错误信息。我如何找到记录未验证的原因?
那么...你怎么看到原因为什么一个LDAP添加(或者替换,删除,打开...)失败?
答
然后我偶然发现了ldap.get_operation_result
,我有一个真正的facepalm时刻。我故意通过在我的库中仔细检查get_operation_result
重新解决了几个我通过仔细检查解决的问题,并且每次都详细描述了问题所在。
这个函数在抢救异常的情况下很有用,或者add(),modify(),delete()等简单地返回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