1 20 21 package org.apache.directory.ldapstudio.browser.core.internal.model; 22 23 24 import javax.naming.NamingException ; 25 import javax.naming.directory.SearchResult ; 26 27 import org.apache.directory.ldapstudio.browser.core.model.DN; 28 import org.apache.directory.ldapstudio.browser.core.model.NameException; 29 30 31 public class JNDIUtils 32 { 33 34 public static DN getDn( SearchResult sr, String base, JNDIConnectionContext context ) throws NamingException , 35 NameException, NoSuchFieldException 36 { 37 String dn = sr.getNameInNamespace(); 38 dn = unescapeJndiName( dn ); 39 return new DN( dn ); 40 } 41 42 43 49 public static String unescapeJndiName( String name ) 50 { 51 52 if ( name.startsWith( "\"" ) && name.endsWith( "\"" ) ) { name = name.substring( 1, name.length() - 1 ); 54 } 55 56 name = name.replaceAll( "\\\\\\\\\"", "\\\\\"" ); name = name.replaceAll( "\\\\2C", "\\\\," ); name = name.replaceAll( "\\\\3B", "\\\\;" ); name = name.replaceAll( "\\\\22", "\\\\\"" ); name = name.replaceAll( "\\\\3C", "\\\\<" ); name = name.replaceAll( "\\\\3E", "\\\\>" ); name = name.replaceAll( "\\\\2B", "\\\\+" ); name = name.replaceAll( "\\\\5C", "\\\\\\\\" ); 65 return name; 66 } 67 68 } 69 | Popular Tags |