使用以下代码,我可以使用我的本地 LDAP 服务器绑定/验证testu
带有密码的用户。testp
在我的 DIT 中,这个用户也属于一个组,比如说Administrators
。如何获取他所属组的名称,反之亦然检查该用户是否属于该组?
public static void main(String[] args)
{
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
properties.put(Context.PROVIDER_URL, "ldap://localhost:10389");
// set properties for authentication
properties.put(Context.SECURITY_AUTHENTICATION, "simple");
properties.put(Context.SECURITY_PRINCIPAL, "cn=testu,ou=users,ou=system");
properties.put(Context.SECURITY_CREDENTIALS, "testp");
try {
InitialLdapContext ctx = new InitialLdapContext(properties, null);
} catch (NamingException e) {
e.printStackTrace();
}
}
在我的 LDAP 浏览器中,在树结构中,我有用户testu
cn=testu,ou=users,ou=system
当Administrators
小组在
cn=Administrators,ou=groups,ou=system
现在我什至不认为我已经获得了该组中的用户,但假设我做了你会如何寻找它?我基本上是在询问如何通过 LDAP 相对于经过身份验证的用户进行搜索查询。
给定以下组:
cn=operations,ou=groups,ou=system
objectClass:groupOfNames (structural)
objectClass:top (abstract)
cn:operations
member:cn=soto,ou=users,ou=system
member:cn=testu,ou=users,ou=system
而这个用户:
cn=testu,ou=users,ou=system
objectClass:organizationalPerson (structural)
objectClass:person (structural)
objectClass:top (abstract)
cn:testu
sn:some name
userPassword:SHA hashed password [testp]
我将如何从该用户那里获得组?