Java 如何在LDAP中获得分配给特定用户的所有memberOf属性
我创建了一个使用LDAP进行身份验证的应用程序。我需要找出用户分配到的所有组名。有没有办法找到答案。我已经编写了代码,但不知怎么的,它只返回一个随机的组名 下面是我获取所有用户成员的代码Java 如何在LDAP中获得分配给特定用户的所有memberOf属性,java,spring,spring-security,ldap,Java,Spring,Spring Security,Ldap,我创建了一个使用LDAP进行身份验证的应用程序。我需要找出用户分配到的所有组名。有没有办法找到答案。我已经编写了代码,但不知怎么的,它只返回一个随机的组名 下面是我获取所有用户成员的代码 private class UserAttributesMapper implements AttributesMapper { @Override public Object mapFromAttributes(Attributes attributes) throws Nam
private class UserAttributesMapper implements AttributesMapper {
@Override
public Object mapFromAttributes(Attributes attributes) throws NamingException {
LdapUser user = new LdapUser();
user.setCn((String)attributes.get("cn").get());
user.setMemberOf((String)attributes.get("memberOf").get());
/*String member = (String)attributes.get("memberOf").get();
int length = attributes.get("memberOf").size();
if(member != null){
for(int i = 0;i<= length; i++){
user.setMemberOf(member);
}
}*/
//user.setMemberOf(attributes.get("memberOf").getID());
user.setsAMAccountName((String)attributes.get("sAMAccountName").get());
return user;
}
}
私有类UserAttributesMapper实现AttributesMapper{
@凌驾
公共对象mapFromAttributes(属性属性)引发NamingException{
LdapUser user=new LdapUser();
user.setCn((String)attributes.get(“cn”).get();
user.setMemberOf((字符串)attributes.get(“memberOf”).get();
/*字符串成员=(字符串)属性.get(“memberOf”).get();
int length=attributes.get(“memberOf”).size();
如果(成员!=null){
对于(int i=0;i来说,这比我想象的要简单得多。请查找下面的代码。在这里,您只需枚举for循环中的所有成员并在列表中指定int,然后返回列表以及所有其他属性
下面是代码
private class UserAttributesMapper implements AttributesMapper {
@Override
public Object mapFromAttributes(Attributes attributes) throws NamingException {
LdapUser user = new LdapUser();
user.setCn((String)attributes.get("cn").get());
List<String> memberOf = new ArrayList<String>();
for(Enumeration vals = attributes.get("memberOf").getAll(); vals.hasMoreElements();){
memberOf.add((String)vals.nextElement());
}
user.setMemberOf(memberOf);
user.setsAMAccountName((String)attributes.get("sAMAccountName").get());
user.setMail((String)attributes.get("mail").get());
return user;
}
}
私有类UserAttributesMapper实现AttributesMapper{
@凌驾
公共对象mapFromAttributes(属性属性)引发NamingException{
LdapUser user=new LdapUser();
user.setCn((String)attributes.get(“cn”).get();
List memberOf=new ArrayList();
对于(枚举vals=attributes.get(“memberOf”).getAll();vals.hasMoreElements();){
memberOf.add((字符串)vals.nextElement());
}
user.setMemberOf(memberOf);
user.setsAMAccountName((字符串)attributes.get(“sAMAccountName”).get();
user.setMail((字符串)attributes.get(“邮件”).get();
返回用户;
}
}