【问题标题】:why ldap search return all results when using %?为什么使用 % 时 ldap 搜索会返回所有结果?
【发布时间】:2011-04-15 14:03:38
【问题描述】:

当我使用以下过滤器搜索一台 ldap 服务器时

(cn=%*)

它返回基本 dn 下的所有结果? LDAP 特别对待'%'?但是我没有找到任何关于它的描述。

【问题讨论】:

  • 不,它没有。你期待的结果是什么?

标签: ldap


【解决方案1】:

你的目录服务器是什么?

你确定你的命令行解释器或编译器没有替换 '%' 吗?

根据RFC2254% 不是特殊字符

如果一个值应包含以下任何字符

       Character       ASCII value
       ---------------------------
       *               0x2a
       (               0x28
       )               0x29
       \               0x5c
       NUL             0x00

该字符必须编码为反斜杠“\”字符(ASCII 0x5c) 后跟代表 ASCII 的两个十六进制数字 编码字符的值。两个十六进制的情况 数字不重要。

这种简单的转义机制消除了过滤器解析的歧义 并允许任何可以在 LDAP 中表示的过滤器 表示为以 NUL 结尾的字符串。以外的其他角色 上面列出的可以使用这种机制进行转义,例如, 非打印字符。

例如,过滤器检查“cn”属性是否包含 任何位置带有字符“”的值将表示为 "(cn=\2a*)"。

请注意,尽管 上面的语法可以产生“attr=*”结构,这个结构是 仅用于表示存在过滤器。

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 2016-02-27
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多