`
jacally
  • 浏览: 772222 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Novell ldap开发组件实例: ModifyAttrs.java

    博客分类:
  • JAVA
阅读更多
http://developer.novell.com/documentation/jldap/jldapenu/api/com/novell/ldap/LDAPModification.html

java 代码
  1. //Sample code file: var/ndk/webBuildengine/tmp/viewable_samples/f91a68eb-ad37-4526-92b1-b1938f37b871/ModifyAttrs.java  
  2. //Warning: This code has been marked up for HTML  
  3.   
  4. /******************************************************************************* 
  5.  * $Novell: ModifyAttrs.java,v 1.21 2003/08/21 11:35:10 $ 
  6.  * Copyright (C) 1999, 2000, 2001 Novell, Inc. All Rights Reserved. 
  7.  * 
  8.  * THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND 
  9.  * TREATIES. USE AND REDISTRIBUTION OF THIS WORK IS SUBJECT TO THE LICENSE 
  10.  * AGREEMENT ACCOMPANYING THE SOFTWARE DEVELOPMENT KIT (SDK) THAT CONTAINS 
  11.  * THIS WORK. PURSUANT TO THE SDK LICENSE AGREEMENT, NOVELL HEREBY GRANTS TO 
  12.  * DEVELOPER A ROYALTY-FREE, NON-EXCLUSIVE LICENSE TO INCLUDE NOVELL'S SAMPLE 
  13.  * CODE IN ITS PRODUCT. NOVELL GRANTS DEVELOPER WORLDWIDE DISTRIBUTION RIGHTS 
  14.  * TO MARKET, DISTRIBUTE, OR SELL NOVELL'S SAMPLE CODE AS A COMPONENT OF 
  15.  * DEVELOPER'S PRODUCTS. NOVELL SHALL HAVE NO OBLIGATIONS TO DEVELOPER OR 
  16.  * DEVELOPER'S CUSTOMERS WITH RESPECT TO THIS CODE. 
  17.  * 
  18.  * $name:         ModifyAttrs.java 
  19.  * 
  20.  * $description:  The ModifyAttrs example modifies the attributes of an entry. 
  21.  *                It also demonstrates the use of an ArrayList to store 
  22.  *                and indeterminate number of of modifications. 
  23.  ******************************************************************************/  
  24.   
  25. import com.novell.ldap.*;  
  26.   
  27. import java.util.Date;  
  28.   
  29. import java.util.ArrayList;  
  30.   
  31. import java.io.UnsupportedEncodingException;  
  32.   
  33.   
  34.   
  35. public class ModifyAttrs   
  36.   
  37. {  
  38.   
  39.     public static void main( String[] args )   
  40.   
  41.     {          
  42.   
  43.         int returnCode = 0;  
  44.   
  45.         if (args.length != 4) {  
  46.   
  47.             System.err.println("Usage:   java ModifyAttrs   
  48.   
  49.                              + ");  
  50.   
  51.             System.err.println("Example: java ModifyAttrs Acme.com "  
  52.   
  53.                              + "\"cn=Admin,o=Acme\" secret\n"  
  54.   
  55.                              + "         \"cn=JSmith,ou=Sales,o=Acme\"");  
  56.   
  57.             System.exit(1);  
  58.   
  59.         }  
  60.   
  61.   
  62.   
  63.         int ldapPort  = LDAPConnection.DEFAULT_PORT;  
  64.   
  65.         int ldapVersion  = LDAPConnection.LDAP_V3;          
  66.   
  67.         Date currentDate = new Date();  
  68.   
  69.         String ldapHost = args[0];  
  70.   
  71.         String loginDN  = args[1];  
  72.   
  73.         String password = args[2];  
  74.   
  75.         String dn = args[3];  
  76.   
  77.         LDAPConnection lc = new LDAPConnection();  
  78.   
  79.         ArrayList modList = new ArrayList();  
  80.   
  81.   
  82.   
  83.         /* To add a new value to an attribute (creates attribute if necessary) 
  84.          *     -- Specify the dn of the entry to modify 
  85.          *     -- Specify the attribute and value to add 
  86.          *     -- Specify the add modification type 
  87.          *     -- Add modification to the modification array 
  88.          *     -- Call LDAPConnection modify() method 
  89.         /* To replace values of an attribute (creates attribute if necessary) 
  90.          *     -- Specify the dn of the entry to modify 
  91.          *     -- Specify the attribute and new values to replace the old ones 
  92.          *     -- Specify the replace modification type 
  93.          *     -- Add modification to the modification array 
  94.          *     -- Call LDAPConnection modify() method 
  95.         /* To delete or modify a single attribute value 
  96.          *     -- Specify the dn of the entry to modify 
  97.          *     -- Specify the attribute and value to be modified 
  98.          *     -- Specify the delete modification type 
  99.          *     -- Add modification to the modification array 
  100.          * --  To add a new value in place of the one we just deleted 
  101.          *     -- Specify the same attribute and new its value 
  102.          *     -- Specify the add modification type 
  103.          *     -- Add modification to the modification array 
  104.          *     -- Call LDAPConnection modify() method 
  105.          */  
  106.   
  107.         String desc =  
  108.   
  109.             "This object was modified at " + new Date( currentDate.getTime());  
  110.   
  111.        // Add a new value to the description attribute  
  112.   
  113.   
  114.         LDAPAttribute attribute = new LDAPAttribute( "description", desc);  
  115.   
  116.         modList.add( new LDAPModification(LDAPModification.ADD, attribute));  
  117.   
  118.   
  119.   
  120.        // Replace all values the E-mail address with a new value  
  121.   
  122.   
  123.         String email = "James_Smith@Acme.com";  
  124.   
  125.         attribute = new LDAPAttribute( "mail", email);  
  126.   
  127.         modList.add( new LDAPModification(LDAPModification.REPLACE, attribute));  
  128.   
  129.   
  130.   
  131.        // Change the phone number  
  132.   
  133.   
  134.        //  First we delete the old phone number  
  135.   
  136.   
  137.         String phone1= "1 801 555 1212";  
  138.   
  139.         attribute= new LDAPAttribute( "telephoneNumber", phone1);  
  140.   
  141.         modList.add( new LDAPModification(LDAPModification.DELETE, attribute));  
  142.   
  143.   
  144.   
  145.        //  Now we add the new phone number  
  146.   
  147.   
  148.         String phone2 = "1 423 555 1212";  
  149.   
  150.         attribute= new LDAPAttribute( "telephoneNumber", phone2);  
  151.   
  152.         modList.add( new LDAPModification(LDAPModification.ADD, attribute));  
  153.   
  154.   
  155.   
  156.         LDAPModification[] mods = new LDAPModification[modList.size()];   
  157.   
  158.         mods = (LDAPModification[])modList.toArray(mods);  
  159.   
  160.         
  161.   
  162.         try {  
  163.   
  164.            // connect to the server  
  165.   
  166.   
  167.             lc.connect( ldapHost, ldapPort);  
  168.   
  169.            // bind to the server  
  170.   
  171.   
  172.             lc.bind( ldapVersion, loginDN, password.getBytes("UTF8") );  
  173.   
  174.               
  175.   
  176.            // Add a known phone number value so we have something to change  
  177.   
  178.   
  179.             lc.modify( dn, new LDAPModification(  
  180.   
  181.                     LDAPModification.ADD,  
  182.   
  183.                     new LDAPAttribute( "telephoneNumber""1 801 555 1212")));  
  184.   
  185.         } catch( LDAPException e1) {  
  186.   
  187.            // If phonenumber value already exists, just go on,  
  188.   
  189.   
  190.            //      otherwise it's an error  
  191.   
  192.   
  193.             if( e1.getResultCode() != LDAPException.ATTRIBUTE_OR_VALUE_EXISTS) {  
  194.   
  195.                 System.out.println("Cannot create attribute: " + e1.toString());  
  196.   
  197.                 System.exit(1);  
  198.   
  199.             }  
  200.   
  201.         }  
  202.   
  203.         catch( UnsupportedEncodingException e ) {  
  204.   
  205.             System.out.println( "Error: " + e.toString() );  
  206.   
  207.         }  
  208.   
  209.               
  210.   
  211.        // Note: All the above modifications will be performed as an atomic  
  212.   
  213.   
  214.        // unit, if all do not succeed, the operation fails and the  
  215.   
  216.   
  217.        // directory is unchanged by this operation.  
  218.   
  219.   
  220.         try {  
  221.   
  222.             lc.modify( dn, mods);  
  223.   
  224.             System.out.println(  
  225.   
  226.                         "Successfully modified the attributes of the entry." );  
  227.   
  228.         } catch( LDAPException e2 ) {  
  229.   
  230.            // Tell what happened  
  231.   
  232.   
  233.             System.err.println( "Error: " + e2.toString() );  
  234.   
  235.               
  236.   
  237.            // Indicate the operation failed  
  238.   
  239.   
  240.             returnCode = 1;  
  241.   
  242.               
  243.   
  244.            // Didn't change the directory, delete initial phone number value  
  245.   
  246.   
  247.             try {  
  248.   
  249.                 lc.modify( dn, new LDAPModification( LDAPModification.DELETE,  
  250.   
  251.                                new LDAPAttribute( "telephoneNumber", phone1)));  
  252.   
  253.             } catch( Exception e) {  
  254.   
  255.                // ignore  
  256.   
  257.   
  258.             }  
  259.   
  260.         } finally {  
  261.   
  262.             if( returnCode == 0) {  
  263.   
  264.                 try {  
  265.   
  266.                    // Cleanup - get rid of the updated description, mail,  
  267.   
  268.   
  269.                    //           and telephone attribute values  
  270.   
  271.   
  272.                    // We delete only those values that we added.  If the  
  273.   
  274.   
  275.                    // value deleted is the only value of the respective  
  276.   
  277.   
  278.                    // attribute, then the attribute is deleted.  
  279.   
  280.   
  281.                     modList.clear();  
  282.   
  283.                     modList.add(new LDAPModification( LDAPModification.DELETE,  
  284.   
  285.                                 new LDAPAttribute( "description", desc)));  
  286.   
  287.                     modList.add(new LDAPModification( LDAPModification.DELETE,  
  288.   
  289.                                 new LDAPAttribute( "mail", email)));  
  290.   
  291.                     modList.add(new LDAPModification( LDAPModification.DELETE,  
  292.   
  293.                                 new LDAPAttribute( "telephoneNumber", phone2)));  
  294.   
  295.                     mods = new LDAPModification[modList.size()];   
  296.   
  297.                     mods = (LDAPModification[])modList.toArray(mods);  
  298.   
  299.                     lc.modify( dn, mods);  
  300.   
  301.                 } catch( Exception e) {  
  302.   
  303.                    // ignore  
  304.   
  305.   
  306.                 }  
  307.   
  308.             }  
  309.   
  310.            // Always disconnect  
  311.   
  312.   
  313.             try {  
  314.   
  315.                 lc.disconnect();  
  316.   
  317.             } catch( Exception e) {  
  318.   
  319.                // ignore  
  320.   
  321.   
  322.             }  
  323.   
  324.         }   
  325.   
  326.         System.exit(returnCode);  
  327.   
  328.     }  
  329.   
  330. }  
分享到:
评论

相关推荐

    Novell.Directory.Ldap.dll

    Novell.Directory.Ldap.dll是C#编程中用于访问Directory(目录服务)或eDirectory(Novell的企业级目录服务)的重要组件,它提供了一组丰富的类和方法,使得开发者能够方便地进行目录操作,如查询、添加、删除和修改...

    netscape ldap 开发包ldapjdk_4.1.jar

    含: com.netscape.sasl.mechanisms.* netscape.ldap.factory.* 请认准再下载

    novell ldap开发包(java)

    Novell LDAP开发包是专为Java开发者设计的一个工具集,用于与 Lightweight Directory Access Protocol (LDAP) 服务进行交互。LDAP是一种开放的标准协议,用于存储和检索分布式目录信息,广泛应用于企业身份验证、...

    java连接LDAP的jar包和实例

    import com.novell.ldap.*; public class LDAPSSLExample { public static void main(String[] args) { String ldapUrl = "ldaps://ldap.example.com:636"; String bindDN = "cn=Manager,dc=example,dc=com"; ...

    Novell.Directory.Ldap.NETStandard:适用于最高2.1和NET5的.NET Standard 1.3的LDAP客户端库-可与任何LDAP协议兼容的目录服务器(包括Microsoft Active Directory)一起使用

    .NET标准LDAP客户端库 -开发版本-Win2019 / Linux / MacOS CI -维护版本-Win2019 / Linux / MacOS CI LDAP客户端库-与.NET Standard 2.0 / 2.1和.NET5兼容的.NET平台:.NET5,.NET Core> = 2.0,.NET Framework> = ...

    com.sun.jndi.ldap.jar

    在Java开发中,`com.sun.jndi.ldap.jar`是一个重要的库文件,它包含了Java Naming and Directory Interface (JNDI) 的 LDAP(Lightweight Directory Access Protocol)实现。JNDI是一个接口,提供了一种标准的方式来...

    spring-ldap-core-1.3.0.RELEASE.jar

    spring-ldap-core-1.3.0.RELEASE.jar

    Apache LDAP 开发包 ApacheJMeter_ldap.jar

    含 org.apache.jmeter.protocol.ldap.config.* org.apache.jmeter.protocol.ldap.control.* org.apache.jmeter.protocol.ldap.sampler.*

    jndi.rar_jndi_site:www.pudn.com

    **Java Naming and Directory Interface (JNDI) 是一个Java API,用于访问各种命名和目录服务。JNDI 提供了一种统一的接口,使得Java应用程序能够查找和操作各种类型的资源,如数据源、邮件服务器、对象等。在“jndi...

    ldapadmin-4.17.20304.0-x64-eng.msi

    Softerra LDAP Administrator 2019.1 最新版本,功能齐全,稳定

    LDAP增、删、改、查操作

    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:389"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put...

    LDAP安装说明(windows).pdf

    【LDAP安装说明(windows)】 LDAP(Lightweight Directory Access ...接下来,你可以使用LdapBrowser或其他工具进行目录的管理和查询,或者开发与LDAP集成的应用程序。注意定期更新软件和补丁,确保系统安全性和性能。

    ldapbrowser-4.5.10625.0-x64-eng

    标题“ldapbrowser-4.5.10625.0-x64-eng”指的是一个名为“ldapbrowser”的软件的特定版本,版本号为4.5.10625.0,适用于64位操作系统,并且是英文版本。这个软件的主要功能是允许用户方便地查看和操作 Lightweight ...

    ldapadmin-4.11.14302.0-x64-eng

    在windows系统上搭建并配置一个LDAP服务器的LDAP admin连接工具。

    java使用ldap修改ad域用户密码.pdf

    标签“技术”表明本文档的内容属于技术类别,涉及到 Java、LDAP 和 Active Directory 等技术领域。 三、部分内容 部分内容可以分为以下几个部分: 1. LDAP 和 Active Directory LDAP(Lightweight Directory ...

    LDAP_programming_With_Java.zip_java ldap_java ldap_java program

    《LDAP编程与Java》这本书是关于使用Java进行 Lightweight Directory Access Protocol (LDAP) 开发的指南。LDAP是一种开放标准的网络协议,用于访问和管理分布式目录服务。它在企业级应用中广泛使用,如用户身份验证...

    Python库 | ldap0-1.4.1.tar.gz

    Python库ldap0-1.4.1.tar.gz是针对LDAP(轻量级目录访问协议)进行操作的一个Python实现。在IT行业中,理解并熟练使用这样的库对于开发与管理分布式身份验证、授权和信息存储系统至关重要。这篇详尽的介绍将深入探讨...

    基于java的开发源码-开源LDAP浏览器 JXplorer.zip

    基于java的开发源码-开源LDAP浏览器 JXplorer.zip 基于java的开发源码-开源LDAP浏览器 JXplorer.zip 基于java的开发源码-开源LDAP浏览器 JXplorer.zip 基于java的开发源码-开源LDAP浏览器 JXplorer.zip 基于java的...

    LDAP以及JAVA方法操作详解.doc

    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:389"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put...

Global site tag (gtag.js) - Google Analytics