2015-07-10 26 views
0

我想知道,如果在AD用戶它是在一個特定的安全組安全組,我嘗試使用在https://www.pingidentity.com/en/blog/2013/07/25/looping_in_ognl.html的例子,並改變它適合我的需要的PingFederate使用OGNL表達式來獲得

#admin="", 
#groups = #this.get("ds.LDAP.memberOf")!=null?#this.get("ds.LDAP.memberOf").getValues() : {}, 
#i= 0, 
#groups.{ 
#group = new javax.naming.ldap.LdapName(#groups[#i]), 
    #cn = #group.getRdn(#group.size() - 1).getValue().toString(), 
    #admin=#cn.equals("Managers")?true:"", 
    #i = #i + 1 }, 
#admin=(#admin!="")?true:"" 

但是,當CN正在搜索列表中的第一個時,我的腳本才返回true,否則返回空。 我檢查了組數組的長度,它只有一個項目包含所有組 ,但Active Directory正在返回所有memberOf,如CN = Managers,CN = Users,DC = company,DC = com,CN =財務,CN =用戶,DC =公司,DC = com,CN =員工,CN =用戶,DC =公司,DC = com 。

回答

0

嘗試以下操作:

#memberOf=#this.get("ds.LDAP.memberOf").toString(),#idx=#memberOf.indexOf("GROUPNAME"), #result = #idx >= 0 ? "TRUE": "FALSE" 
+0

感謝埃裏克,該訣竅我說的唯一的事情就是像CN =經理安全組的全名,CN =用戶,DC =公司,DC = COM而不僅僅是經理 – agalli