对Red Hat Directory Server运行以下搜索查询时,出现错误“执行搜索ERR_04149时出错,不是有效的转义值”:
cn = cn \ 3DnsPwPolicyEntry \,ou \ 3Dinternal \,o \ 3Dcompany \,c \ 3Dgr,cn = nsPwPolicyContainer,ou = internal,o = company,c = gr
关于如何正确转义字符的任何想法?
答案 0 :(得分:0)
根据LDAP wiki,需要转义的字符为:
逗号,
反斜杠字符\
磅符号(哈希符号)#
加号+ 小于符号<< br /> 大于符号>
分号;
双引号(引号)“
等号=
前导或尾随空格
您似乎正在尝试转义不需要转义的数字。
此外,以下字符也不需要转义:
* ( ) . & - _ [ ] ` ~ | @ $ % ^ ? : { } ! '
答案 1 :(得分:0)
cn = cn \ 3DnsPwPolicyEntry \,ou \ 3Dinternal \,o \ 3Dcompany \,c \ 3Dgr,cn = nsPwPolicyContainer,ou = internal,o = company,c = gr
在我看来这是伪造的,因为此RDN值看起来像您已经用字节编码转义了所有等号:
cn\3DnsPwPolicyEntry\,ou\3Dinternal\,o\3Dcompany\,c\3Dgr
如果您确实想使用该值,则还必须转义逗号。我敢肯定,通常不会在 cn = nsPwPolicyContainer,ou = internal,o = company,c = gr 下添加带有这样的RDN的条目。无论您使用什么代码,似乎都存在另一个问题。
为避免发生此类问题而不必深入研究RFC 4514,我强烈建议对具有喜欢的引号功能的人喜欢的编程语言使用像样的LDAP模块软件包,而不要滚动自己的本地脚本。
答案 2 :(得分:0)
此字符串对我有用:
String globalPolicyDn="cn=cn\\3DnsPwPolicy\\,ou\\3Dinternal\\,o\\3Dcompany\\,c\\3Dgr,cn=nsPwPolicyContainer,ou=internal,o=company,c=gr";