Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使LDAP筛选器在OU的三个级别中查找值_Java_Active Directory_Ldap - Fatal编程技术网

Java 如何使LDAP筛选器在OU的三个级别中查找值

Java 如何使LDAP筛选器在OU的三个级别中查找值,java,active-directory,ldap,Java,Active Directory,Ldap,很抱歉,我不熟悉LDAP/AD服务,我在为服务器创建一个简单的3级或4级LDAP查询时遇到问题,假设层次结构如下: DN my.com.app (dc=my,dc=com,dc=app) |_OU maingroup |_OU subgroup |_OU grandsongroup 我尝试使用当前登录用户获取GrandongGroup中定义的所有值(假设用户名为worker),因此这里是我的过滤器 filter = "(&(ou=grandso

很抱歉,我不熟悉
LDAP
/
AD
服务,我在为服务器创建一个简单的3级或4级
LDAP
查询时遇到问题,假设层次结构如下:

DN my.com.app (dc=my,dc=com,dc=app)
   |_OU maingroup
       |_OU subgroup
           |_OU grandsongroup
我尝试使用当前登录用户获取GrandongGroup中定义的所有值(假设用户名为
worker
),因此这里是我的过滤器

filter = "(&(ou=grandsongroup,ou=subgroup,ou=maingroup)(sAMAccountName=worker"))";
但它不会返回任何结果,会出现什么问题

  • 筛选器字符串未定义搜索的深度。这是通过另一个参数实现的。有三种可能性:

    • 仅限当前级别
    • 当前级别加上一个子级别
    • 整个子树
  • 要从中搜索的DN是在另一个参数中指定的,而不是在筛选器中指定的。因此,过滤器串应仅为

    (sAMAccountName=worker)
    
    搜索的基本DN应该是

    ou=grandsongroup,ou=subgroup,ou=maingroup,dc=my,dc=com,dc=app
    
  • 筛选器字符串未定义搜索的深度。这是通过另一个参数实现的。有三种可能性:

    • 仅限当前级别
    • 当前级别加上一个子级别
    • 整个子树
  • 要从中搜索的DN是在另一个参数中指定的,而不是在筛选器中指定的。因此,过滤器串应仅为

    (sAMAccountName=worker)
    
    搜索的基本DN应该是

    ou=grandsongroup,ou=subgroup,ou=maingroup,dc=my,dc=com,dc=app
    

  • 非常感谢。我还有一个问题:如何在上面的DN值中获得
    grandongroup
    下的值?是
    someResultSearch.getAttributes().get(“ou”).get()
    ?如果
    ou
    是您想要的属性的名称,是的。非常感谢。但是,如果像这个例子一样,在3个级别中定义了三个
    ou
    ,但需要从Grandongroup检索值,该怎么办?谢谢。我还有一个问题:如何在上面的DN值中获得
    grandongroup
    下的值?是
    someResultSearch.getAttributes().get(“ou”).get()
    ?如果
    ou
    是您想要的属性的名称,是的。非常感谢。但是,如果像示例一样,在3个级别中定义了三个
    ou
    ,但需要从GrandongGroup中检索值,该怎么办?