编程语言
首页 > 编程语言> > java – 使用Spring LDAP获取内部属性

java – 使用Spring LDAP获取内部属性

作者:互联网

我正在使用Spring LDAP 1.3.0库来访问带有Java的内部LDAP服务器,但是我遇到了一件麻烦:我如何获得任何LDAP结构的内部属性?例如,如何获取用户的memberOf属性?

我曾经搜索了很多但是没有找到任何关于使用Spring LDAP的内容.
任何想法都将非常受欢迎.谢谢.

解决方法:

正如您在评论中所说,UserAttributeMapper是您的朋友!

如果用户有多个’memberof’:

    static List<List<String>> getPersonGroupsByAccountName(String accountName){

    EqualsFilter filter = new EqualsFilter("sAMAccountName", accountName);
    return ldap.search(DistinguishedName.EMPTY_PATH,filter.encode(),new AttributesMapper(){
        public Object mapFromAttributes(
                javax.naming.directory.Attributes attrs)
        throws javax.naming.NamingException {
            List<String> memberof = new ArrayList();
            for (Enumeration vals = attrs.get("memberOf").getAll(); vals.hasMoreElements();) {
                memberof.add((String)vals.nextElement());
            }
            return memberof;
        }
    });

我确信有更好的方法可以做到这一点,但它有效.

标签:java,ldap,spring-ldap
来源: https://codeday.me/bug/20190626/1292641.html