2013-12-20 63 views
0

我正在使用activiti-ldap jar來實現activiti中的ldap。我能夠通過身份驗證獲得成功,但我無法執行授權。LDAP組在Activiti中過濾授權

代碼是使用以下濾波器來驗證(這是給結果)

(&(objectClass=person)(objectClass=user)(sAMAccountName=my-name)) 

代碼是使用下面的過濾器(基於身份驗證的用戶即搜索組)授權。該枚舉沒有給出任何結果

(&(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

我不確定這是否回答你的問題,但是在使用Active Directory的可分辨名稱時(我假設它是Active Directory,因爲有sAMAccountName屬性)是逗號,所以必須小心一些,或者DN中的其他特殊字符(例如cn = Harley,Gregory)。逗號和其他特殊字符需要使用單個反斜槓(「\」)進行轉義,Softerra可能會自動在查詢字符串中爲您自動轉義這些字符。

就像我說的,它可能不會回答你的問題,但可能會給你一個搜索途徑。

乾杯, Greg