我正在尝试知道AD中的用户是否在特定安全组中,我尝试使用https://www.pingidentity.com/en/blog/2013/07/25/looping_in_ognl.html中的示例并将其更改为符合我的需求
#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 = Finance,CN = Users,DC = company,DC = com,CN = Employees,CN =用户,DC =公司,DC = com的
答案 0 :(得分:0)
尝试以下方法:
#memberOf=#this.get("ds.LDAP.memberOf").toString(),#idx=#memberOf.indexOf("GROUPNAME"), #result = #idx >= 0 ? "TRUE": "FALSE"