Spring-ldap 操作LDAP

全文: http://blog.163.com/lyq_163_2009/blog/static/13408269620128119210896/

package com.nice.dao;
import java.util.List;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.ModificationItem;
import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.LdapTemplate;


public class UserDao {


    private LdapTemplate ldapTemplate;


    public void add(String rdn,User user){
        Attributes attrs = new BasicAttributes();
        Attribute ocAttr = new BasicAttribute("objectClass");
        ocAttr.add("top");
        ocAttr.add("organizationalunit");
        attrs.put(ocAttr);
        Attribute snAttr = new BasicAttribute("sn");
        snAttr.add(user.getName());
        attrs.put(snAttr);
        this.ldapTemplate.bind(rdn, null, attrs);
    }
 
    public void delete(String rdn){
        this.ldapTemplate.unbind(rdn);
    }
 
    public void modifyRDN(String oRDN,String nRDN){
        this.ldapTemplate.rename(oRDN, nRDN);
    }
 
    public void modfiyAttrs(String rdn,User user){
        Attribute attr = new BasicAttribute("sn");
        attr.add(user.getName());
        ModificationItem item = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, attr);
        this.ldapTemplate.modifyAttributes(rdn, new ModificationItem[]{item});
    }
 
    public User find(String rdn) {
        return (User)this.ldapTemplate.lookup(rdn, new AttributesMapper(){


            public Object mapFromAttributes(Attributes attributes)
                    throws NamingException {
                User user = new User();
                if(attributes!=null){
                    Attribute idAttr = attributes.get("uid");
                    if(idAttr!=null){
                        user.setId((String)idAttr.get());
                    }
                    Attribute nameAttr = attributes.get("sn");
                    if(nameAttr!=null){
                        user.setName((String)nameAttr.get());
                    }
                }
                return user;
            }
        });
    }
 
    public List<User> search(String rdn,String fileter) {
        return this.ldapTemplate.search(rdn, fileter, 
                new AttributesMapper(){


                    public Object mapFromAttributes(Attributes attributes)
                            throws NamingException {
                        User user = new User();
                        if(attributes!=null){
                            Attribute idAttr = attributes.get("uid");
                            if(idAttr!=null){
                                user.setId((String)idAttr.get());
                            }
                            Attribute nameAttr = attributes.get("sn");
                            if(nameAttr!=null){
                                user.setName((String)nameAttr.get());
                            }
                        }
                        return user;
                    }
   
                });
        }
 
    public void setLdapTemplate(LdapTemplate ldapTemplate) {
        this.ldapTemplate = ldapTemplate;
    }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值