vir*_*ani 3 java spring ldap spring-security
我创建了一个使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
该类用于为用户设置属性和返回属性.
提前致谢.
这比我想象的要容易得多.请在下面找到代码.在这里你只需要枚举for循环中的所有memberOf并在List中赋值int,然后返回List以及所有其他属性.
下面是代码.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4636 次 |
| 最近记录: |