spring-ldap学习(一)

本文介绍了如何在Ubuntu14.04上搭建LDAP服务,并通过Spring-LDAP进行操作。首先,详细阐述了安装ldap服务的步骤和访问方式。接着,提到了使用ldapsoft工具进行连接配置。然后,展示了如何利用Spring-LDAP非注解方式实现增删改查。最后,重点讲解了通过注解简化对象和目录映射,提高代码的简洁性和可维护性。
摘要由CSDN通过智能技术生成

1、搭建ldap服务,我用的系统是Ubuntu14.04,具体可以参考这篇文章:ubuntu14.04搭建ldap服务,按照步骤来没什么问题。

  安装之后访问地址为:http://10.8.12.147/phpldapadmin/ 

                                         name: cn=admin,dc=dianrong,dc=com 

                                         password: 123456

2、安装ldapsoft ldap admin tool,官网下载地址:http://www.ldapsoft.com/download.html

 点击新建连接(New Connection),按照以下配置:



第一次进来,只会有下图的cn=admin



3、利用spring-ldap实现增删改查(没有使用注解)

model类:

/**
 * Created by drjr on 5/17/17.
 */
public class User {

    private String fullName;

    private String lastName;

    private String description;

    private String country;

    private String company;

    private String phone;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}
定义操作ldap的接口类:

public interface UserDao {
    void create(User user);

    void update(User user);

    void delete(String fullName);

    List<String> getAllUserNames();

    List<User> findAll();

    User findByPrimaryKey(String fullname);
}
接口实现类:
public class UserDaoImpl implements UserDao {

    private LdapTemplate ldapTemplate;

    @Override
    public void create(User user) {
        Name dn = buildDn(user.getFullName()); // 生成条目唯一标识,有点类似mysql的主键ID
        DirContextAdapter context = new DirContextAdapter(dn);  // 根据体用提供的dn构建适配器对象
        mapToContext(user, context);   // 给适配器对象设置属性值
        ldapTemplate.bind(dn, context, null); // 插入数据
    }

    @Override
    public void update(User user) {
        Name dn = buildDn(user.getFullName());
        DirContextAdapter context = (DirContextAdapter) ldapTemplate.lookup(dn);
        mapToContext(user, context);
        ldapTemplate.modifyAttributes(dn, context.getModificationItems());
    }

    @Override
    public void delete(String fullName) {
        ldapTemplate.unbind(buildDn(fullName));
    }

    @Override
    public List<String> getAllUserNames() {
        return ldapTemplate.search(query()
                        .attributes("cn")
                        .where("objectclass").is("person"),
                new AttributesMapper<String>() {
                    @Override
                    public String mapFromAttributes(Attributes attributes) throws NamingException {
                        return attributes.get("cn").get().toString();
                    }
                });
    }

    @Override
    public List<User> fi
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值