Preguntas sobre Nombres
¿Por qué obtengo un string vacío como nombre en mi
SearchResult?
getName() siempre devuelve un nombre
relativo al contexto fuente de la búsqueda. Por eso,
si el contexto fuente satisface el filtro de búsqueda, el nombre devuelto será "" (el nombre vacío)
porque es el nombre relativo al contexto fuente. Puedes ver más detalles en la lección
Búsquedas.
¿Por qué obtengo un string URL como nombre en mi
SearchResult?
La entrada LDAP fue recuperada siguiendo un alias o una remisión, por eso su nombre es una URL.
Puedes ver más detalles en la lección
Búsquedas.
Las formas string aceptan representaciones string de un nombre mixto. Es decir, usar un nombre
sring es equivalente a llamar a new CompositeName(stringName)
y pasar los resultados al método
Context/DirContext.
El argumento Name puede ser cualquier objeto que implemente
el interface Name. Si es un ejemplar de
CompositeName, el nombre es tratado como un nombre mixto; de
otro modo se trata como un nombre compuesto.
¿Puedo pasar el nombre que obtengo de vuelta de
NameParser a los métodos de
Context?
Esto está relacionado con la pregunta anterior. Si podemos.
NameParser.parse() devuelve un nombre compuesto que
implementa el interface Name. Este nombre puede ser pasado a
los métodos de Context, que lo interpretara como un nombre compuesto.
¿Qué relación hay entre el nombre que uso para la propiedad
Context.SECURITY_PRINCIPAL y el directorio?
Podemos pensar en el nombre principal como que viene de un espacio de nombres diferente
al del directorio. Puedes ver la RFC 2829 y la lección
Seguridad para ver más detalles sobre
los mecanismos de autentificación LDAP. El proveedor de servicio LDAP de Sun acepta un string
como nombe principal, que es pasado directamente al servidor LDAP. Algunos servidores LDAP
aceptan DNs, mientras que otros soportan el esquema propuesto por la
RFC 2829.
¿Por qué hay marcas extrañas y escapes en los nombres que leo del directorio?
El analizador de nombres LDAP de Sun es conservador respecto a las reglas de comillado, pero
produce nombres "correctos". Recuerda también que los nombres de entradas devueltos por
NamingEnumerations son nombres mixtos que
pueden pasarse de vuelta a los métodos de Context y de
DirContext. Por eso, si el nombre contiene caracteres
que tienen conflictos con la síntaxis de nombres mixtos (como el caracter de barra invertida
"/"), el proveedor LDAP proporcionará codificación para asegurarse de que ese caracter será
tratado como parte del nombre LDAP en vez de como un separador de nombres mixtos.
¿Cómo puedo obtener el DN completo de una entrada LDAP?
Podemos usar
Context.getNameInNamespace().