Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 OpenLDAP LDAPConnection.bind()dn字符串中是否可以使用通配符?_Java_Ldap_Openldap - Fatal编程技术网

Java OpenLDAP LDAPConnection.bind()dn字符串中是否可以使用通配符?

Java OpenLDAP LDAPConnection.bind()dn字符串中是否可以使用通配符?,java,ldap,openldap,Java,Ldap,Openldap,我的具体问题是,当我尝试绑定以下完整dn时,一切正常 new LDAPConnection().bind(LDAPConnection.LDAP_V3, "uid=me@wherever.com,ou=Lev1,ou=Lev2,o=Company", "secret".getBytes()); 但是,当我尝试使用不完整的dn绑定时,会出现无效凭据异常 new LDAPConnection().bind(LDAPConnection.LDAP_V3, "uid=me@wherever.com,

我的具体问题是,当我尝试绑定以下完整dn时,一切正常

new LDAPConnection().bind(LDAPConnection.LDAP_V3, 
"uid=me@wherever.com,ou=Lev1,ou=Lev2,o=Company", "secret".getBytes());
但是,当我尝试使用不完整的dn绑定时,会出现无效凭据异常

new LDAPConnection().bind(LDAPConnection.LDAP_V3,
"uid=me@wherever.com,ou=Lev1,o=Company", "secret".getBytes());

它们是否具有某种可能的通配符形式,例如“uid”=me@wherever.com,ou=Lev1,ou=*,o=Company“?

要执行类似的通配符,您必须先执行搜索,然后选择要执行绑定的通配符。这可能意味着您需要绑定一个可以执行搜索的id。;)

没有。听起来你可能把bind()和search()搞混了。bind()是针对目录的身份验证,就像登录一样。使用通配符dn绑定就像使用通配符用户名登录一样。没有真正的意义。

不,以您描述的方式使用通配符是不可能的。但是,SASL提供了一种实现所需行为的机制。您的目录服务器管理员可以配置目录服务器以将身份映射到授权ID,其中客户端不需要知道用于验证LDAP连接的身份的可分辨名称。专业质量的目录服务器软件将提供多种身份映射功能。

我对此感到害怕(尽管并不害怕)。我们很早就做了一个决定,我们只是“知道”dn,当然我们错了。我得把它改写成搜索和绑定。谢谢