Java by API/javax.naming.ldap/Rdn

Материал из Java эксперт
Перейти к: навигация, поиск

new Rdn(String rdnString)

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.ldap.Rdn; /**

* Demonstrates RDN comparison
*/

public class Main {

 public static void main(String args[]) throws Exception {
   /**
    * Compare: 1) same RDN sequence with an type/value pairs ordered
    * differently. 2) RDN sequence of different length. 3) RDN sequence of
    * different Case.
    */
   Rdn one = new Rdn("ou=Sales+cn=Bob");
   Rdn two = new Rdn("cn=Bob+ou=Sales");
   Rdn three = new Rdn("ou=Sales+cn=Bob+c=US");
   Rdn four = new Rdn("cn=lowercase");
   Rdn five = new Rdn("cn=LowerCASE");
   System.out.println(one.equals(two)); // true
   System.out.println(two.equals(three)); // false
   System.out.println(one.equals(three)); // false
   System.out.println(four.equals(five)); // true
 }

}


 </source>
   
  
 
  



Rdn: equals(Object obj)

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.ldap.Rdn; /**

* Demonstrates RDN comparison
*/

public class Main {

 public static void main(String args[]) throws Exception {
   /**
    * Compare: 1) same RDN sequence with an type/value pairs ordered
    * differently. 2) RDN sequence of different length. 3) RDN sequence of
    * different Case.
    */
   Rdn one = new Rdn("ou=Sales+cn=Bob");
   Rdn two = new Rdn("cn=Bob+ou=Sales");
   Rdn three = new Rdn("ou=Sales+cn=Bob+c=US");
   Rdn four = new Rdn("cn=lowercase");
   Rdn five = new Rdn("cn=LowerCASE");
   System.out.println(one.equals(two)); // true
   System.out.println(two.equals(three)); // false
   System.out.println(one.equals(three)); // false
   System.out.println(four.equals(five)); // true
 }

}


 </source>
   
  
 
  



Rdn: escapeValue(Object val)

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; /*

* Shows how to format DNs with special characters by escaping the values
*/

public class Main {

 public static void main(String args[]) {
   try {
     // DN with "," (comma) in its attribute value
     String unformatted = "Juicy, Fruit";
     String formatted = Rdn.escapeValue(unformatted);
     LdapName dn = new LdapName("cn=" + formatted);
     System.out.println("dn:" + dn);
     // DN with a "+" (plus) in its attribute value
     unformatted = "true+false";
     formatted = Rdn.escapeValue(unformatted);
     dn = new LdapName("cn=" + formatted);
     System.out.println("dn:" + dn);
     // DN with a binary value as its attribute value
     byte[] bytes = new byte[] { 1, 2, 3, 4 };
     formatted = Rdn.escapeValue(bytes);
     System.out.println("Orig val: " + bytes + " Escaped val: " + formatted);
   } catch (InvalidNameException e) {
     e.printStackTrace();
   }
 }

}


 </source>
   
  
 
  



Rdn: getType()

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttributes; import javax.naming.ldap.Rdn; /**

* Shows ways of accessing the type/value pair(s) from an RDN
*/

public class Main {

 public static void main(String args[]) throws Exception {
   Attributes attrs = new BasicAttributes();
   attrs.put("o", "Yellow");
   attrs.put("cn", "Mango");
   byte[] mangoJuice = new byte[6];
   for (int i = 0; i < mangoJuice.length; i++) {
     mangoJuice[i] = (byte) i;
   }
   attrs.put("ou", mangoJuice);
   Rdn rdn = new Rdn(attrs);
   System.out.println();
   System.out.println("size:" + rdn.size());
   System.out.println("getType(): " + rdn.getType());
   System.out.println("getValue(): " + rdn.getValue());
   // test toAttributes
   System.out.println();
   System.out.println("toAttributes(): " + rdn.toAttributes());
 }

}


 </source>
   
  
 
  



Rdn: getValue()

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttributes; import javax.naming.ldap.Rdn; /**

* Shows ways of accessing the type/value pair(s) from an RDN
*/

public class Main {

 public static void main(String args[]) throws Exception {
   Attributes attrs = new BasicAttributes();
   attrs.put("o", "Yellow");
   attrs.put("cn", "Mango");
   byte[] mangoJuice = new byte[6];
   for (int i = 0; i < mangoJuice.length; i++) {
     mangoJuice[i] = (byte) i;
   }
   attrs.put("ou", mangoJuice);
   Rdn rdn = new Rdn(attrs);
   System.out.println();
   System.out.println("size:" + rdn.size());
   System.out.println("getType(): " + rdn.getType());
   System.out.println("getValue(): " + rdn.getValue());
   // test toAttributes
   System.out.println();
   System.out.println("toAttributes(): " + rdn.toAttributes());
 }

}


 </source>
   
  
 
  



Rdn: size()

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttributes; import javax.naming.ldap.Rdn; /**

* Shows ways of accessing the type/value pair(s) from an RDN
*/

public class Main {

 public static void main(String args[]) throws Exception {
   Attributes attrs = new BasicAttributes();
   attrs.put("o", "Yellow");
   attrs.put("cn", "Mango");
   byte[] mangoJuice = new byte[6];
   for (int i = 0; i < mangoJuice.length; i++) {
     mangoJuice[i] = (byte) i;
   }
   attrs.put("ou", mangoJuice);
   Rdn rdn = new Rdn(attrs);
   System.out.println();
   System.out.println("size:" + rdn.size());
   System.out.println("getType(): " + rdn.getType());
   System.out.println("getValue(): " + rdn.getValue());
   // test toAttributes
   System.out.println();
   System.out.println("toAttributes(): " + rdn.toAttributes());
 }

}


 </source>
   
  
 
  



Rdn: toAttributes()

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttributes; import javax.naming.ldap.Rdn; /**

* Shows ways of accessing the type/value pair(s) from an RDN
*/

public class Main {

 public static void main(String args[]) throws Exception {
   Attributes attrs = new BasicAttributes();
   attrs.put("o", "Yellow");
   attrs.put("cn", "Mango");
   byte[] mangoJuice = new byte[6];
   for (int i = 0; i < mangoJuice.length; i++) {
     mangoJuice[i] = (byte) i;
   }
   attrs.put("ou", mangoJuice);
   Rdn rdn = new Rdn(attrs);
   System.out.println();
   System.out.println("size:" + rdn.size());
   System.out.println("getType(): " + rdn.getType());
   System.out.println("getValue(): " + rdn.getValue());
   // test toAttributes
   System.out.println();
   System.out.println("toAttributes(): " + rdn.toAttributes());
 }

}


 </source>
   
  
 
  



Rdn: unescapeValue(String val)

   <source lang="java">
 

/*

* Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
*   - Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*   - Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in the
*     documentation and/or other materials provided with the distribution.
*
*   - Neither the name of Sun Microsystems nor the names of its
*     contributors may be used to endorse or promote products derived
*     from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import javax.naming.ldap.Rdn; /*

* Shows how values in the RDN can be retrieved from their string
* representation.
*/

public class Main {

 public static void main(String args[]) {
   // DN with "," (comma)
   String unformatted = "Juicy, Fruit";
   String formatted = Rdn.escapeValue(unformatted);
   System.out.println("Formatted:" + formatted);
   Object original = Rdn.unescapeValue(formatted);
   System.out.println("Original:" + original);
   // DN with a "+" (plus)
   unformatted = "true+false";
   formatted = Rdn.escapeValue(unformatted);
   System.out.println("Formatted:" + formatted);
   original = Rdn.unescapeValue(formatted);
   System.out.println("Original:" + original);
   // DN with a binary value as one one of its attribute value
   byte[] bytes = new byte[] { 1, 2, 3, 4 };
   formatted = Rdn.escapeValue(bytes);
   System.out.println("Formatted:" + formatted);
   original = Rdn.unescapeValue(formatted);
   System.out.println("Original:" + original);
 }

}


 </source>