Sistema de Nombrado en Java (JNDI) y II

La operaci�n "compare" del LDAP permite a un cliente preguntarle a un servidor si la entrada nombrada tiene una pereja atributo/valor. Esto permite al servidor mantener secretas ciertas parejas atributo/valor (por ejemplo, no expuestas para accesos de "search" generales) mientras permite que los clientes limitados las usen. Algunos servidores podr�an usar estas caracter�sticas para passwords, por ejemplo, aunque es inseguro para el cliente pasar password en texto claro en la propia operaci�n "compare".

Para conseguir esto en el JNDI, se usan argumentos convenientemente restringidos para los siguientes m�todos:

Primero, el filtro debe ser de la forma "(nombe=valor)". No podemo usar comodines. Segundo, el �mbito de b�squeda debe ser SearchControls.OBJECT_SCOPE. Finalmente, debemos pedir que no se devuelvan atributos.

Aqu� tenemos un ejemplo:

// Value of the attribute
byte[] key = {(byte)0x61, (byte)0x62, (byte)0x63, (byte)0x64, 
    (byte)0x65, (byte)0x66, (byte)0x67};

// Set up the search controls
SearchControls ctls = new SearchControls();
ctls.setReturningAttributes(new String[0]);       // Return no attrs
ctls.setSearchScope(SearchControls.OBJECT_SCOPE); // Search object only

// Perform the search
NamingEnumeration answer = ctx.search("cn=S. User, ou=NewHires", 
    "(mySpecialKey={0})", new Object[]{key}, ctls);

Si la comparaci�n tiene �xtio, la enumeraci�n resultante contendr� un s�lo �tem cuyo nombre es el nombre vac�o y que no contiene atributos.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR