You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bu...@apache.org on 2016/12/30 23:11:31 UTC

svn commit: r1003791 - in /websites/staging/directory/trunk/content: ./ api/user-guide/1.1-java-and-ldap.html

Author: buildbot
Date: Fri Dec 30 23:11:30 2016
New Revision: 1003791

Log:
Staging update by buildbot for directory

Modified:
    websites/staging/directory/trunk/content/   (props changed)
    websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html

Propchange: websites/staging/directory/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Dec 30 23:11:30 2016
@@ -1 +1 @@
-1776603
+1776656

Modified: websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html Fri Dec 30 23:11:30 2016
@@ -184,22 +184,22 @@
 }
 h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
 <h1 id="11-java-and-ldap">1.1 - Java and LDAP<a class="headerlink" href="#11-java-and-ldap" title="Permanent link">&para;</a></h1>
-<p>Most developer will, at some point, face the tricky task to communicate with a <strong>LDAP</strong> server. <strong>LDAP</strong> seems to be a very simple technology, but when you get deep into it, you realize that many aspects are not well known, and not so easy to deal with.</p>
-<p>Java is most certainly the number one language used in the enterprise, for around 10 years now. Some even call it the new <strong>Cobol</strong> !</p>
-<p>Those two facts make it necessary to be able to communicate with a <strong>LDAP</strong> server in <strong>Java</strong>. This is ware a convenient <strong>API</strong> is useful, and this is why we decided to provide this <strong>API</strong>.</p>
-<p>Of course, there are alternatives, like <strong>JNDI</strong>. We truly believe that those alternative aren't helping users to cope with the complexity of <strong>LDAP</strong>, at least they are not giving a hand to users. For instance, <strong>JNDI</strong> semantic are far awy from <strong>LDAP</strong> semantic. Let's see how different it is :</p>
+<p>Most developers will, at some point, face the tricky task to communicate with a <strong>LDAP</strong> server. <strong>LDAP</strong> seems to be a very simple technology, but when you get deep into it, you realize that many aspects are not well known, and not easy to deal with.</p>
+<p>Java is one of the most commonly used languages used in the enterprise. Some even call it the new <strong>Cobol</strong>!</p>
+<p>Those two facts make it necessary to be able to communicate with a <strong>LDAP</strong> server using <strong>Java</strong>. This is where a convenient <strong>API</strong> is useful, which is why we decided to provide this <strong>API</strong>.</p>
+<p>Of course, there are alternatives, like <strong>JNDI</strong>. We believe that the others don't help users cope with <strong>LDAP</strong>'s inherent complexities. <strong>JNDI</strong>'s semantics are very different than what's required for proper <strong>LDAP</strong> usage. For example:</p>
 <ul>
-<li><strong>Bind</strong> : used in <strong>LDAP</strong> to authenticate a user, and to create an entry in <strong>JNDI</strong></li>
-<li><strong>Unbind</strong> : close the <strong>LDAP</strong> session in <strong>LDAP</strong>, delete an entry in <strong>JNDI</strong></li>
-<li><strong>Compare </strong>: this <strong>LDAP</strong> operation is mapped to a Search in <strong>JNDI</strong></li>
+<li><strong>Bind</strong> : used in <strong>LDAP</strong> to authenticate a user but creates an entry in <strong>JNDI</strong></li>
+<li><strong>Unbind</strong> : closes the <strong>LDAP</strong> session in <strong>LDAP</strong> but deletes an entry in <strong>JNDI</strong></li>
+<li><strong>Compare </strong>: is mapped to a search in <strong>JNDI</strong> while its proper usage is to compare to determine if a tageted attribute matches a particular value in <strong>LDAP</strong>. </li>
 <li>Various properties have to be set in <strong>JNDI</strong> in order to connect or tweak the <strong>Search</strong> operation, which is not convenient</li>
-<li><strong>Attributes</strong> is case sensitive by default in <strong>JNDI</strong>, and they aren't schema aware</li>
-<li><strong>Name</strong> in <strong>JNDI</strong> are not able to do a valid comparison in <strong>JNDI</strong></li>
-<li><strong>NamingEnumeration</strong> have to be explcitly closed in <strong>JNDI</strong>, as they aren't closed when you disconnect, leading to some resource leaks.</li>
+<li><strong>Attributes</strong> are case sensitive by default in <strong>JNDI</strong> and not schema aware which is not compliant with LDAP standard.</li>
+<li><strong>Name</strong> in <strong>JNDI</strong> can't do a valid comparison in <strong>JNDI</strong></li>
+<li><strong>NamingEnumeration</strong> must be explcitly closed in <strong>JNDI</strong>, and don't close automatically upon disconnect, which causes resource leakage to occur.</li>
 </ul>
 <p>Some of those problems are also true for the existing <strong>LDAP API</strong>.</p>
-<p>All in all, writing application including some <strong>LDAP</strong> operations in <strong>Java</strong> is just a painful task for most of the developers.</p>
-<p>Our target is to provide a better <strong>API</strong>, that will help them getting efficient with their <strong>LDAP</strong> interaction.</p>
+<p>All in all, writing applications to perform basic <strong>LDAP</strong> operations in <strong>Java</strong> is a painful task for most developers.</p>
+<p>Our target is to provide a better <strong>API</strong>, one that leads to correct and efficient usage of <strong>LDAP</strong> operation.</p>
 
 
     <div class="nav">