Active directory PingFederate使用ognl表达式获取安全组
我试图知道广告中的某个用户是否在某个特定的安全组中,我尝试使用中的示例并对其进行更改以满足我的需要Active directory PingFederate使用ognl表达式获取安全组,active-directory,ognl,pingfederate,Active Directory,Ognl,Pingfederate,我试图知道广告中的某个用户是否在某个特定的安全组中,我尝试使用中的示例并对其进行更改以满足我的需要 #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.getRd
#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将返回一行中的所有成员,如CN=Managers、CN=Users、DC=company、DC=com、CN=Finance、CN=Users、DC=company、DC=com、CN=Employees、CN=Users、DC=company、DC=com
.请尝试以下操作:
#memberOf=#this.get("ds.LDAP.memberOf").toString(),#idx=#memberOf.indexOf("GROUPNAME"), #result = #idx >= 0 ? "TRUE": "FALSE"
谢谢Eric,我做到了。我只添加了安全组的全名,比如CN=Managers、CN=Users、DC=company、DC=com,而不仅仅是Managers