JNDI操作LDAP实现(三)

这篇博客介绍了如何使用JNDI进行LDAP操作,包括对象的绑定、查询和修改。通过示例代码展示了如何绑定和保存对象到LDAP目录,查找并调用对象数据,以及修改和删除LDAP条目。重点讨论了JNDI的lookup方法和修改条目的ModificationItem。
摘要由CSDN通过智能技术生成

JNDI定义了一个Serializable接口类来为应用信息的表达提供一种统一的方式。Serializable接口类包含了诸如地址、类型信息等用于访问具体对象的信息。为了能将对象的引用绑定到目录树中,该对象的类必须实现Referenceable接口,其中包含了方法 getReference()。开发者可以在该对象上调用getReference()方法来获得Reference以用于绑定。Serializable接口与Referenceable接口有颇多相似之处,不同在于Referenceable可引用的对象只包含一些用于创建实际对象的信息,而Serializable会包含更多的甚至不适合存储在目录结构中的信息。

(2)绑定保存对象程序

package jndi;

import java.util.Hashtable;

import javax.naming.Context;

import javax.naming.NamingException;   

import javax.naming.directory.*;

public class ldapDataBind {

   public static void main(String[]args){

       //创建Hashtable以存储JNDI将用于连接目录服务的环境变量

        Hashtable hs = new Hashtable();

        //设置连接LDAP的实现工厂

        hs.put(Context.INITIAL_CONTEXT_FACTORY,

                      "com.sun.jndi.ldap.LdapCtxFactory");

        // 指定LDAP服务器的主机名和端口号

        hs.put(Context.PROVIDER_URL, "ldap://localhost:389 ");

        //给环境提供认证方法,有SIMPLE、SSL/TLS和SASL

        hs.put(Context.SECURITY_AUTHENTICATION, "simple");

        //指定进入的目录识别名DN

        hs.put(Context.SECURITY_PRINCIPAL, "cn=Directory Manager");

        //进入的目录密码

        hs.put(Context.SECURITY_CREDENTIALS, "password");

        try {

           // 得到初始目录环境的一个引用

           DirContext ctx = new InitialDirContext(hs);

           // 新建一个对象

           persons perObj = new persons("jordan","40");

           //绑定对象

           ctx.rebind ("uid = Jordan,ou = Bull,o = NBA ",perObj);

           System.out.println("bind object object success " );

             /*实例化一个属性集合*/

             Attributes  attrs =  new BasicAttributes(true);

             /*建立一个属性,其属性名为"mail"*/

            Attribute  personMail  = new BasicAttribute("mail");

            //设置属性"mail"的值为"xie@163.com"、"liu@sina.com.cn"、
                 "xyh@powerise.com.cn"

            personMail.add("xie@163.com");

            person

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值