我正在使用activiti-ldap jar在activiti中实现ldap。我能够通过身份验证取得成功,但我无法执行授权。
代码正在使用以下过滤器进行身份验证(正在给出结果)
(&(objectClass=person)(objectClass=user)(sAMAccountName=my-name))
代码使用以下过滤器进行授权(即基于经过身份验证的用户搜索组)。 enunumeration没有给出任何结果
(&(objectClass=group)(member=my-distinguised-name))
但是,当使用相同的组过滤器Softerra LDAP Browser时,它会给出结果。
NamingEnumeration< ? > namingEnum = initialDirContext.search(baseDn, searchExpression, createSearchControls());
while (namingEnum.hasMore()) {
System.out.println("Inside While");
}
我确信,我错过了什么。谁能指出我的错误?
答案 0 :(得分:0)
我不确定这是否能回答您的问题,但是当您使用Active Directory的专有名称(我假设它是Active Directory,因为有sAMAccountName属性)时,您需要注意的是逗号或其他DN中的特殊字符(例如cn = Harley,Gregory)。逗号和其他特殊字符需要使用单个反斜杠(“\”)进行转义,Softerra可能会在查询字符串中为您自动转义这些字符。
就像我说的那样,它可能无法解答您的问题,但可能会为您提供搜索途径。
干杯, 格雷格