Java 如何在LDAP中获得分配给特定用户的所有memberOf属性

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

我创建了一个使用LDAP进行身份验证的应用程序。我需要找出用户分配到的所有组名。有没有办法找到答案。我已经编写了代码,但不知怎么的,它只返回一个随机的组名

下面是我获取所有用户成员的代码

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();
返回用户;
}
}