You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2012/02/09 01:13:49 UTC

svn commit: r1242189 - in /directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence: book.txt chapter-4/4-8-managing-binary-attributes.confluence

Author: elecharny
Date: Thu Feb  9 00:13:49 2012
New Revision: 1242189

URL: http://svn.apache.org/viewvc?rev=1242189&view=rev
Log:
Added a page to explain how we handle binary attributes

Added:
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-4/4-8-managing-binary-attributes.confluence
Modified:
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/book.txt

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/book.txt
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/book.txt?rev=1242189&r1=1242188&r2=1242189&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/book.txt (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/book.txt Thu Feb  9 00:13:49 2012
@@ -23,6 +23,7 @@ chapter-4/4-4-aliases.confluence
 chapter-4/4-5-ldif-and-dsml.confluence
 chapter-4/4-6-abandoning-and-operation.confluence
 chapter-4/4-7-server-information.confluence
+chapter-4/4-8-managing-binary-attributes.confluence
 5-0-schema-management.confluence
 chapter-5/5-1-schemamanager.confluence
 chapter-5/5-2-attribute-types.confluence

Added: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-4/4-8-managing-binary-attributes.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-4/4-8-managing-binary-attributes.confluence?rev=1242189&view=auto
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-4/4-8-managing-binary-attributes.confluence (added)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-4/4-8-managing-binary-attributes.confluence Thu Feb  9 00:13:49 2012
@@ -0,0 +1,23 @@
+h2. Managing Binary Attributes
+
+One of the tricky aspect when exchanging data with a LDAP server is that the client usually has no clue about the value type it gets back. For instance, we know that a *JpegPhoto* attribute has a binary value, but the API does not.
+
+The *LDAP API* provides some mechanisms to handle correctly the binary attributes and their values.
+
+First of all, it has to be understood that the value type is defined by it's *AttributeType* container, which itself depends on a *LdapSyntax*. That is, an AttributeType with an OctetString syntax will always contain binary values.
+
+Sadly, on the client side, we don't have any information about the *AttributeTypes* nor the *LdapSyntaxes* : We only manage attribute's ID. We have to add a mechanism in the API to load those *AttributeTypes* and *LdapSyntaxes*, or at least add a map associating an Attribute ID with a type (binary or not). We have designed the *LDAP API* to offer three ways to get those informations loaded.
+
+h3. Loading the schema information from the server
+
+Ldap Servers may expose the schema they are using, and it may be possible to get all the values from it by pulling a subentry containing all of them (cf RFC 4512). Of course, as it's not mandatory, we will have some differences between servers. For instance :
+- *OpenLDAP* stores one unique schema for all the DIT, and it's available in a place specified in the rootDSE *subschemasubentry* attribute.
+- *ApacheDS* stores one unique schema for all the DIT, and it's available in a place specified in the rootDSE *subschemasubentry* attribute too (so it's equivalent to what *OpenLDAP* does)
+- *Microsoft AD* stores the position of the schema in the rootDSE *schemaNamingContext* attribute.
+- *SunDS*, *OpenDS* and *OpenDJ* aren't exposing the *LdapSyntaxes*
+etc...
+
+We don't currently support all those configurations. We only load the schema from the server which expose it with all the data needed to know if an AttributeType is binary or not. Namely, we support full schema from *ApacheDS* and *OpenLDAP* as of today.
+
+How does it work ? Well, it can't be simpler : as soon as you connect to a server using a LdapNetwork, 
+// TO BE CONTINUED