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 2018/05/19 14:01:38 UTC
svn commit: r1030067 [1/3] - in /websites/staging/directory/trunk/content:
./ api/ api/download/ api/internal-design-guide/
api/internal-design-guide/images/ api/user-guide/ fortress/download/
Author: buildbot
Date: Sat May 19 14:01:37 2018
New Revision: 1030067
Log:
Staging update by buildbot for directory
Modified:
websites/staging/directory/trunk/content/ (props changed)
websites/staging/directory/trunk/content/api/coding-standards.html
websites/staging/directory/trunk/content/api/developer-guide.html
websites/staging/directory/trunk/content/api/download-old-versions.html
websites/staging/directory/trunk/content/api/download/download-archive.html
websites/staging/directory/trunk/content/api/download/download-sources.html
websites/staging/directory/trunk/content/api/downloads.html
websites/staging/directory/trunk/content/api/five-minutes-tutorial.html
websites/staging/directory/trunk/content/api/index.html
websites/staging/directory/trunk/content/api/internal-design-guide.html
websites/staging/directory/trunk/content/api/internal-design-guide/1-introduction.html
websites/staging/directory/trunk/content/api/internal-design-guide/10-entry.html
websites/staging/directory/trunk/content/api/internal-design-guide/11-filter.html
websites/staging/directory/trunk/content/api/internal-design-guide/12-cursor.html
websites/staging/directory/trunk/content/api/internal-design-guide/13-controls.html
websites/staging/directory/trunk/content/api/internal-design-guide/14-extended-operations.html
websites/staging/directory/trunk/content/api/internal-design-guide/15-ldif.html
websites/staging/directory/trunk/content/api/internal-design-guide/16-dsml.html
websites/staging/directory/trunk/content/api/internal-design-guide/17-osgi.html
websites/staging/directory/trunk/content/api/internal-design-guide/2-general-structure.html
websites/staging/directory/trunk/content/api/internal-design-guide/3-building.html
websites/staging/directory/trunk/content/api/internal-design-guide/4-asn1.html
websites/staging/directory/trunk/content/api/internal-design-guide/4.1-asn1-tlv.html
websites/staging/directory/trunk/content/api/internal-design-guide/5-network.html
websites/staging/directory/trunk/content/api/internal-design-guide/6-codec.html
websites/staging/directory/trunk/content/api/internal-design-guide/7-ldap-messages.html
websites/staging/directory/trunk/content/api/internal-design-guide/8-schema.html
websites/staging/directory/trunk/content/api/internal-design-guide/9-dn.html
websites/staging/directory/trunk/content/api/internal-design-guide/images/extended-request-decorator.graphml
websites/staging/directory/trunk/content/api/java-api.html
websites/staging/directory/trunk/content/api/news.html
websites/staging/directory/trunk/content/api/user-guide.html
websites/staging/directory/trunk/content/api/user-guide/1-introduction.html
websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html
websites/staging/directory/trunk/content/api/user-guide/1.2-ldap-in-a-few-words.html
websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html
websites/staging/directory/trunk/content/api/user-guide/1.4-preparation-to-code.html
websites/staging/directory/trunk/content/api/user-guide/2-basic-ldap-api-usage.html
websites/staging/directory/trunk/content/api/user-guide/2.1-connection-disconnection.html
websites/staging/directory/trunk/content/api/user-guide/2.10-ldap-connection-template.html
websites/staging/directory/trunk/content/api/user-guide/2.11-filter-builder.html
websites/staging/directory/trunk/content/api/user-guide/2.2-binding-unbinding.html
websites/staging/directory/trunk/content/api/user-guide/2.3-searching.html
websites/staging/directory/trunk/content/api/user-guide/2.4-adding.html
websites/staging/directory/trunk/content/api/user-guide/2.5-deleting.html
websites/staging/directory/trunk/content/api/user-guide/2.6-modifying.html
websites/staging/directory/trunk/content/api/user-guide/2.7-moving-renaming.html
websites/staging/directory/trunk/content/api/user-guide/2.8-comparing.html
websites/staging/directory/trunk/content/api/user-guide/2.9-exception-management.html
websites/staging/directory/trunk/content/api/user-guide/3-advanced-ldap-api-usage.html
websites/staging/directory/trunk/content/api/user-guide/3.1-controls.html
websites/staging/directory/trunk/content/api/user-guide/3.2-extended-operations.html
websites/staging/directory/trunk/content/api/user-guide/3.3-referrals.html
websites/staging/directory/trunk/content/api/user-guide/3.4-aliases.html
websites/staging/directory/trunk/content/api/user-guide/3.5-ldif-dsml.html
websites/staging/directory/trunk/content/api/user-guide/3.6-abandonning.html
websites/staging/directory/trunk/content/api/user-guide/3.7-server-informations.html
websites/staging/directory/trunk/content/api/user-guide/4-schema-management.html
websites/staging/directory/trunk/content/api/user-guide/4.1-schema.html
websites/staging/directory/trunk/content/api/user-guide/4.2-schema-manager.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1-schema-objects.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.1-attribute-types.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.2-object-classes.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.3-syntaxes.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.4-matching-rules.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.5-dit-content-rules.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.6-dit-structure-rules.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.7-matching-rule-uses.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.8-name-forms.html
websites/staging/directory/trunk/content/api/user-guide/4.2.1.9-apacheds-schema-elements.html
websites/staging/directory/trunk/content/api/user-guide/4.2.2-registries.html
websites/staging/directory/trunk/content/api/user-guide/4.2.3-schema-loader.html
websites/staging/directory/trunk/content/api/user-guide/5-ldap-security.html
websites/staging/directory/trunk/content/api/user-guide/5.1-ldaps.html
websites/staging/directory/trunk/content/api/user-guide/5.2-start-tls.html
websites/staging/directory/trunk/content/api/user-guide/5.3-sasl-bind.html
websites/staging/directory/trunk/content/api/user-guide/5.4-password-handling.html
websites/staging/directory/trunk/content/api/user-guide/5.5-certificates.html
websites/staging/directory/trunk/content/api/user-guide/5.6-aci-and-acls.html
websites/staging/directory/trunk/content/api/user-guide/6-ldap-data-structures.html
websites/staging/directory/trunk/content/api/user-guide/6.1-administrative-point.html
websites/staging/directory/trunk/content/api/user-guide/6.10-dit-content-rule.html
websites/staging/directory/trunk/content/api/user-guide/6.11-dit-structure-rule.html
websites/staging/directory/trunk/content/api/user-guide/6.12-entry.html
websites/staging/directory/trunk/content/api/user-guide/6.13-expr-node.html
websites/staging/directory/trunk/content/api/user-guide/6.14-ldap-comparator.html
websites/staging/directory/trunk/content/api/user-guide/6.15-ldap-result.html
websites/staging/directory/trunk/content/api/user-guide/6.16-ldap-syntax.html
websites/staging/directory/trunk/content/api/user-guide/6.17-ldap-url.html
websites/staging/directory/trunk/content/api/user-guide/6.18-ldif-control.html
websites/staging/directory/trunk/content/api/user-guide/6.19-ldif-entry.html
websites/staging/directory/trunk/content/api/user-guide/6.2-administrative-role.html
websites/staging/directory/trunk/content/api/user-guide/6.20-matching-rule.html
websites/staging/directory/trunk/content/api/user-guide/6.21-matching-rule-use.html
websites/staging/directory/trunk/content/api/user-guide/6.22-message.html
websites/staging/directory/trunk/content/api/user-guide/6.23-modification.html
websites/staging/directory/trunk/content/api/user-guide/6.24-name-form.html
websites/staging/directory/trunk/content/api/user-guide/6.25-normalizer.html
websites/staging/directory/trunk/content/api/user-guide/6.26-object-class.html
websites/staging/directory/trunk/content/api/user-guide/6.27-oid.html
websites/staging/directory/trunk/content/api/user-guide/6.28-rdn.html
websites/staging/directory/trunk/content/api/user-guide/6.29-referral.html
websites/staging/directory/trunk/content/api/user-guide/6.3-attribute.html
websites/staging/directory/trunk/content/api/user-guide/6.30-refinment.html
websites/staging/directory/trunk/content/api/user-guide/6.31-schema-manager.html
websites/staging/directory/trunk/content/api/user-guide/6.32-subentry.html
websites/staging/directory/trunk/content/api/user-guide/6.33-subtree-specification.html
websites/staging/directory/trunk/content/api/user-guide/6.34-syntax-checker.html
websites/staging/directory/trunk/content/api/user-guide/6.35-value.html
websites/staging/directory/trunk/content/api/user-guide/6.4-attribute-type.html
websites/staging/directory/trunk/content/api/user-guide/6.5-ava.html
websites/staging/directory/trunk/content/api/user-guide/6.6-csn.html
websites/staging/directory/trunk/content/api/user-guide/6.7-control.html
websites/staging/directory/trunk/content/api/user-guide/6.8-cursor.html
websites/staging/directory/trunk/content/api/user-guide/6.9-dn.html
websites/staging/directory/trunk/content/api/user-guide/7-requests-responses.html
websites/staging/directory/trunk/content/api/user-guide/7.1-abandon-request.html
websites/staging/directory/trunk/content/api/user-guide/7.10-extended-request.html
websites/staging/directory/trunk/content/api/user-guide/7.11-extended-response.html
websites/staging/directory/trunk/content/api/user-guide/7.12-intermediate-response.html
websites/staging/directory/trunk/content/api/user-guide/7.13-mod-dn-request.html
websites/staging/directory/trunk/content/api/user-guide/7.14-mod-dn-response.html
websites/staging/directory/trunk/content/api/user-guide/7.15-modify-request.html
websites/staging/directory/trunk/content/api/user-guide/7.16-modify-response.html
websites/staging/directory/trunk/content/api/user-guide/7.17-search-request.html
websites/staging/directory/trunk/content/api/user-guide/7.18-search-result-done.html
websites/staging/directory/trunk/content/api/user-guide/7.19-search-result-entry.html
websites/staging/directory/trunk/content/api/user-guide/7.2-add-request.html
websites/staging/directory/trunk/content/api/user-guide/7.20-search-result-reference.html
websites/staging/directory/trunk/content/api/user-guide/7.21-unbind-request.html
websites/staging/directory/trunk/content/api/user-guide/7.3-add-response.html
websites/staging/directory/trunk/content/api/user-guide/7.4-bind-request.html
websites/staging/directory/trunk/content/api/user-guide/7.5-bind-response.html
websites/staging/directory/trunk/content/api/user-guide/7.6-compare-request.html
websites/staging/directory/trunk/content/api/user-guide/7.7-compare-response.html
websites/staging/directory/trunk/content/api/user-guide/7.8-del-request.html
websites/staging/directory/trunk/content/api/user-guide/7.9-del-response.html
websites/staging/directory/trunk/content/api/user-guide/8-ldap-rfcs.html
websites/staging/directory/trunk/content/api/vision.html
websites/staging/directory/trunk/content/articles.html
websites/staging/directory/trunk/content/commercial-support.html
websites/staging/directory/trunk/content/conference-materials.html
websites/staging/directory/trunk/content/contribute.html
websites/staging/directory/trunk/content/fortress/download/download-sources.html
websites/staging/directory/trunk/content/index.html
websites/staging/directory/trunk/content/issue-tracking.html
websites/staging/directory/trunk/content/mailing-lists-and-irc.html
websites/staging/directory/trunk/content/original-project-proposal.html
websites/staging/directory/trunk/content/privacy-policy.html
websites/staging/directory/trunk/content/references.html
websites/staging/directory/trunk/content/sources.html
websites/staging/directory/trunk/content/special-thanks.html
websites/staging/directory/trunk/content/team.html
websites/staging/directory/trunk/content/testimonies.html
websites/staging/directory/trunk/content/vision.html
Propchange: websites/staging/directory/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sat May 19 14:01:37 2018
@@ -1 +1 @@
-1827966
+1831890
Modified: websites/staging/directory/trunk/content/api/coding-standards.html
==============================================================================
--- websites/staging/directory/trunk/content/api/coding-standards.html (original)
+++ websites/staging/directory/trunk/content/api/coding-standards.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/developer-guide.html
==============================================================================
--- websites/staging/directory/trunk/content/api/developer-guide.html (original)
+++ websites/staging/directory/trunk/content/api/developer-guide.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/download-old-versions.html
==============================================================================
--- websites/staging/directory/trunk/content/api/download-old-versions.html (original)
+++ websites/staging/directory/trunk/content/api/download-old-versions.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -179,6 +179,12 @@ h2:hover > .headerlink, h3:hover > .head
</thead>
<tbody>
<tr>
+<td align="center">Apache LDAP API 1.0.0</td>
+<td align="center"><a href="http://archive.apache.org/dist/directory/api/dist/1.0.0">Download</a></td>
+<td align="center"><a href="http://directory.apache.org/api/gen-docs/1.0.0/apidocs/">Javadoc</a>, <a href="http://directory.apache.org/api/gen-docs/1.0.0/xref/">Xref</a></td>
+<td align="center">07/June/2017</td>
+</tr>
+<tr>
<td align="center">Apache LDAP API 1.0.0-RC2</td>
<td align="center"><a href="http://archive.apache.org/dist/directory/api/dist/1.0.0-RC2">Download</a></td>
<td align="center"><a href="http://directory.apache.org/api/gen-docs/1.0.0-RC2/apidocs/">Javadoc</a>, <a href="http://directory.apache.org/api/gen-docs/1.0.0-RC2/xref/">Xref</a></td>
Modified: websites/staging/directory/trunk/content/api/download/download-archive.html
==============================================================================
--- websites/staging/directory/trunk/content/api/download/download-archive.html (original)
+++ websites/staging/directory/trunk/content/api/download/download-archive.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -171,20 +171,20 @@
<table width="100%" class="noBorder">
<tr>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.zip">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.zip">
<img src="./../../images/download.png" width="32" height="32" border="0"/>
</a>
</td>
<td> </td>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.zip">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.zip">
<strong>
- [preferred]/[...]/apache-ldap-api-1.0.0-bin.zip
+ [preferred]/[...]/apache-ldap-api-1.0.1-bin.zip
</strong>
</a>
</td>
<td align="right">
- [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.zip.sha1">SHA1</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.zip.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.zip.md5">MD5</a>]
+ [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.zip.sha1">SHA1</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.zip.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.zip.md5">MD5</a>]
</td>
</tr>
</table>
@@ -198,20 +198,20 @@
<table width="100%" class="noBorder">
<tr>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.tar.gz">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.tar.gz">
<img src="./../../images/download.png" width="32" height="32" border="0"/>
</a>
</td>
<td> </td>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.tar.gz">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.tar.gz">
<strong>
- [preferred]/[...]/apache-ldap-api-1.0.0-bin.tar.gz
+ [preferred]/[...]/apache-ldap-api-1.0.1-bin.tar.gz
</strong>
</a>
</td>
<td align="right">
- [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.tar.gz.sha1">SHA1</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.tar.gz.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-bin.tar.gz.md5">MD5</a>]
+ [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.tar.gz.sha1">SHA1</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.tar.gz.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-bin.tar.gz.md5">MD5</a>]
</td>
</tr>
</table>
@@ -264,21 +264,21 @@
<div class="preformatted">
<div class="preformattedContent">
<pre>$ pgpk -a KEYS
-$ pgpv apache-ldap-api-1.0.0-bin.zip.asc</pre>
+$ pgpv apache-ldap-api-1.0.1-bin.zip.asc</pre>
</div>
</div>
or
<div class="preformatted">
<div class="preformattedContent">
<pre>$ pgp -ka KEYS
-$ pgp apache-ldap-api-1.0.0-bin.zip.asc</pre>
+$ pgp apache-ldap-api-1.0.1-bin.zip.asc</pre>
</div>
</div>
or
<div class="preformatted">
<div class="preformattedContent">
<pre>$ gpg --import KEYS
-$ gpg --verify apache-ldap-api-1.0.0-bin.zip.asc</pre>
+$ gpg --verify apache-ldap-api-1.0.1-bin.zip.asc</pre>
</div>
</div>
Modified: websites/staging/directory/trunk/content/api/download/download-sources.html
==============================================================================
--- websites/staging/directory/trunk/content/api/download/download-sources.html (original)
+++ websites/staging/directory/trunk/content/api/download/download-sources.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -171,20 +171,20 @@
<table width="100%" class="noBorder">
<tr>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.zip">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.zip">
<img src="./../../images/download.png" width="32" height="32" border="0"/>
</a>
</td>
<td> </td>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.zip">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.zip">
<strong>
- [preferred]/[...]/apache-ldap-api-1.0.0-src.zip
+ [preferred]/[...]/apache-ldap-api-1.0.1-src.zip
</strong>
</a>
</td>
<td align="right">
- [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.zip.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.zip.md5">MD5</a>]
+ [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.zip.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.zip.md5">MD5</a>]
</td>
</tr>
</table>
@@ -198,20 +198,20 @@
<table width="100%" class="noBorder">
<tr>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.tar.gz">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.tar.gz">
<img src="./../../images/download.png" width="32" height="32" border="0"/>
</a>
</td>
<td> </td>
<td>
- <a href="[preferred]/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.tar.gz">
+ <a href="[preferred]/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.tar.gz">
<strong>
- [preferred]/[...]/apache-ldap-api-1.0.0-src.tar.gz
+ [preferred]/[...]/apache-ldap-api-1.0.1-src.tar.gz
</strong>
</a>
</td>
<td align="right">
- [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.tar.gz.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.0/apache-ldap-api-1.0.0-src.tar.gz.md5">MD5</a>]
+ [<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.tar.gz.asc">ASC</a>-<a href="http://archive.apache.org/dist/directory/api/dist/1.0.1/apache-ldap-api-1.0.1-src.tar.gz.md5">MD5</a>]
</td>
</tr>
</table>
@@ -264,21 +264,21 @@
<div class="preformatted">
<div class="preformattedContent">
<pre>$ pgpk -a KEYS
-$ pgpv apache-ldap-api-1.0.0-bin.zip.asc</pre>
+$ pgpv apache-ldap-api-1.0.1-bin.zip.asc</pre>
</div>
</div>
or
<div class="preformatted">
<div class="preformattedContent">
<pre>$ pgp -ka KEYS
-$ pgp apache-ldap-api-1.0.0-bin.zip.asc</pre>
+$ pgp apache-ldap-api-1.0.1-bin.zip.asc</pre>
</div>
</div>
or
<div class="preformatted">
<div class="preformattedContent">
<pre>$ gpg --import KEYS
-$ gpg --verify apache-ldap-api-1.0.0-bin.zip.asc</pre>
+$ gpg --verify apache-ldap-api-1.0.1-bin.zip.asc</pre>
</div>
</div>
Modified: websites/staging/directory/trunk/content/api/downloads.html
==============================================================================
--- websites/staging/directory/trunk/content/api/downloads.html (original)
+++ websites/staging/directory/trunk/content/api/downloads.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/five-minutes-tutorial.html
==============================================================================
--- websites/staging/directory/trunk/content/api/five-minutes-tutorial.html (original)
+++ websites/staging/directory/trunk/content/api/five-minutes-tutorial.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/index.html
==============================================================================
--- websites/staging/directory/trunk/content/api/index.html (original)
+++ websites/staging/directory/trunk/content/api/index.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -167,7 +167,7 @@
The API is OSGI ready and extensible. New controls, schema elements and network layer could be added or used in the near future.
</div>
<div class="download-link">
- <a href="./../api/downloads.html" class="download_badge"><b>Download Apache<br>LDAP API 1.0.0</b></a>
+ <a href="./../api/downloads.html" class="download_badge"><b>Download Apache<br>LDAP API 1.0.1</b></a>
</div>
</div>
<div class="right">
@@ -189,7 +189,20 @@
}
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="news">News<a class="headerlink" href="#news" title="Permanent link">¶</a></h1>
-<p><h2 class="news">Apache Directory LDAP API 1.0.0 released <em>posted on June 7th, 2017</em></h2></p>
+<p><h2 class="news">Apache Directory LDAP API 1.0.1 released <em>posted on May 19th, 2018</em></h2></p>
+<p>The Apache Directory Team is proud to announce the availability of version 1.0.1 of the Apache Directory LDAP API.</p>
+<p>The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).</p>
+<p>This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.</p>
+<p>It's also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It's also OSGi capable.</p>
+<p>Two security issues has been fixed :</p>
+<ul>
+<li>A LDAPS race condition, where some clear text message could be sent over the wire, when using a connection pool</li>
+<li>A StartTLS issue, where the establishmenent of the secured channel can't be made, and the connection is dropped</li>
+</ul>
+<p>Those are two critical issues, and we urge you to upgrade to <strong>Apache LDAP API 1.0.1</strong> if you were using a previous version.</p>
+<p>Downloads are available <a href="downloads.html">here</a> and the User's Guide is <a href="user-guide.html">there</a></p>
+<h2 class="news">Apache Directory LDAP API 1.0.0 released <em>posted on June 7th, 2017</em></h2>
+
<p>The Apache Directory Team is proud to announce the availability of version 1.0.0 final of the Apache Directory LDAP API.</p>
<p>The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).</p>
<p>This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.</p>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/1-introduction.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/1-introduction.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/1-introduction.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/10-entry.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/10-entry.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/10-entry.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/11-filter.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/11-filter.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/11-filter.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/12-cursor.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/12-cursor.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/12-cursor.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/13-controls.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/13-controls.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/13-controls.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/14-extended-operations.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/14-extended-operations.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/14-extended-operations.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -1058,6 +1058,264 @@ Control ::= SEQUENCE {
<p>So we may have many <em>updateControls</em> and for each one of them, one to many <em>controls</em>. We will need to define a state machine to decode those two ASN/1 description.</p>
<p>First, let's see what is the state machine for the <em>txnEndRes</em> type and the <em>controls</em> type :</p>
<p><img alt="Extended Operations state machine" src="images/EndTransactionResponse.png" /></p>
+<p>The transitions from one step to the other is based on the BER encoded tag :</p>
+<ul>
+<li>0x30 for SEQUENCE</li>
+<li>0x04 for OCTET STRING</li>
+<li>0x01 for BOOLEAN</li>
+<li>0x02 for INTEGER</li>
+</ul>
+<p>Note that some deep knowledge on ASN.1 is required to encode or decode some element.</p>
+<p>Here, we will need two state machines to decode an <em>EndTransactionResponse</em> message :</p>
+<ul>
+<li>one for the response value</li>
+<li>one for the embedded controls</li>
+</ul>
+<p>Hopefully, we can reuse the <em>LdapMessage</em> <em>Control</em> grammar (at least the logic)</p>
+<p>So we need to code the following interfaces and classes :</p>
+<ul>
+<li>A container</li>
+<li>A Factory</li>
+<li>A Grammar (actually 2)</li>
+<li>A list of states (StatesEnum)</li>
+<li>A decorator</li>
+<li>A decoder</li>
+<li>An interface</li>
+<li>An implementation</li>
+</ul>
+<p>The interface, implementation, factory, container and decoder are not really complex, and follow the same logic that what we shown in teh previous example.</p>
+<p>The list of states is just an <em>enum</em> that describes all the states shown in the state machine exposed before :</p>
+<ul>
+<li>Global SEQUENCE</li>
+<li>MessageId</li>
+<li>UpdateControls SEQUENCE</li>
+<li>UpdateControl SEQUENCE</li>
+<li>UpdateControl messageId</li>
+<li>Controls </li>
+<li>start and end states</li>
+</ul>
+<p>We can see we don't have any state associated with the <em>Control</em> decoding : it's handled by another codec.</p>
+<p>Here is the <em>enum</em> :</p>
+<div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">directory</span><span class="o">.</span><span class="na">api</span><span class="o">.</span><span class="na">ldap</span><span class="o">.</span><span class="na">extras</span><span class="o">.</span><span class="na">extended</span><span class="o">.</span><span class="na">ads_impl</span><span class="o">.</span><span class="na">endTransaction</span><span class="o">;</span>
+
+
+<span class="kn">import</span> <span class="nn">org.apache.directory.api.asn1.ber.grammar.States</span><span class="o">;</span>
+
+
+<span class="cm">/**</span>
+<span class="cm"> * This class store the EndTransactionResponse's grammar constants. It is also used</span>
+<span class="cm"> * for debugging purposes.</span>
+<span class="cm"> * </span>
+<span class="cm"> * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a></span>
+<span class="cm"> */</span>
+<span class="kd">public</span> <span class="kd">enum</span> <span class="n">EndTransactionResponseStatesEnum</span> <span class="kd">implements</span> <span class="n">States</span>
+<span class="o">{</span>
+ <span class="cm">/** The END_STATE */</span>
+ <span class="n">END_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** start state*/</span>
+ <span class="n">START_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** The initial SEQUENCE */</span>
+ <span class="n">END_TRANSACTION_SEQUENCE_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** The failed message ID */</span>
+ <span class="n">FAILED_MESSAGE_ID_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** The update controls SEQ */</span>
+ <span class="n">UPDATE_CONTROLS_SEQ_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** The update control SEQ */</span>
+ <span class="n">UPDATE_CONTROL_SEQ_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** THe control's message ID state */</span>
+ <span class="n">CONTROL_MESSAGE_ID_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** The control's state */</span>
+ <span class="n">CONTROLS_STATE</span><span class="o">,</span>
+
+ <span class="cm">/** Last state */</span>
+ <span class="n">LAST_STATE</span><span class="o">;</span>
+
+
+ <span class="cm">/**</span>
+<span class="cm"> * Get the grammar name</span>
+<span class="cm"> * </span>
+<span class="cm"> * @return The grammar name</span>
+<span class="cm"> */</span>
+ <span class="kd">public</span> <span class="n">String</span> <span class="nf">getGrammarName</span><span class="o">()</span>
+ <span class="o">{</span>
+ <span class="k">return</span> <span class="s">"END_TRANSACTION_RESPONSE_GRAMMER"</span><span class="o">;</span>
+ <span class="o">}</span>
+
+
+ <span class="cm">/**</span>
+<span class="cm"> * Get the string representing the state</span>
+<span class="cm"> * </span>
+<span class="cm"> * @param state The state number</span>
+<span class="cm"> * @return The String representing the state</span>
+<span class="cm"> */</span>
+ <span class="kd">public</span> <span class="n">String</span> <span class="nf">getState</span><span class="o">(</span> <span class="kt">int</span> <span class="n">state</span> <span class="o">)</span>
+ <span class="o">{</span>
+ <span class="k">return</span> <span class="o">(</span> <span class="n">state</span> <span class="o">==</span> <span class="n">END_STATE</span><span class="o">.</span><span class="na">ordinal</span><span class="o">()</span> <span class="o">)</span> <span class="o">?</span> <span class="s">"END_TRANSACTION_RESPONSE_GRAMMER"</span> <span class="o">:</span> <span class="n">name</span><span class="o">();</span>
+ <span class="o">}</span>
+
+
+ <span class="cm">/**</span>
+<span class="cm"> * {@inheritDoc}</span>
+<span class="cm"> */</span>
+ <span class="nd">@Override</span>
+ <span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">isEndState</span><span class="o">()</span>
+ <span class="o">{</span>
+ <span class="k">return</span> <span class="k">this</span> <span class="o">==</span> <span class="n">END_STATE</span><span class="o">;</span>
+ <span class="o">}</span>
+
+
+ <span class="cm">/**</span>
+<span class="cm"> * {@inheritDoc}</span>
+<span class="cm"> */</span>
+ <span class="nd">@Override</span>
+ <span class="kd">public</span> <span class="n">EndTransactionResponseStatesEnum</span> <span class="nf">getStartState</span><span class="o">()</span>
+ <span class="o">{</span>
+ <span class="k">return</span> <span class="n">START_STATE</span><span class="o">;</span>
+ <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>We can now define transitions between states, accordingly to the grammar semantic :</p>
+<table class="table">
+<thead>
+<tr>
+<th>Initial state</th>
+<th>Tag</th>
+<th>Final state</th>
+<th>action</th>
+<th></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>START</td>
+<td>SEQUENCE</td>
+<td>END_TRANSACTION_SEQUENCE</td>
+<td>Initialize the data structure holding the result</td>
+<td></td>
+</tr>
+<tr>
+<td>END_TRANSACTION_SEQUENCE</td>
+<td>INTEGER</td>
+<td>FAILED_MESSAGE_ID</td>
+<td>Store the failed message ID</td>
+<td></td>
+</tr>
+<tr>
+<td>FAILED_MESSAGE_ID</td>
+<td>none</td>
+<td>END</td>
+<td>The value has been fully decode, get out</td>
+<td></td>
+</tr>
+<tr>
+<td>END_TRANSACTION_SEQUENCE</td>
+<td>SEQUENCE</td>
+<td>UPDATE_CONTROLS_SEQ</td>
+<td>Create a list of <em>UpdateControls</em>, store it in the response</td>
+<td></td>
+</tr>
+<tr>
+<td>UPDATE_CONTROLS_SEQ</td>
+<td>SEQUENCE</td>
+<td>UPDATE_CONTROL_SEQ</td>
+<td>Create a <em>UpdateControls</em> instance, store it in the list</td>
+<td></td>
+</tr>
+<tr>
+<td>UPDATE_CONTROL_SEQ</td>
+<td>INTEGER</td>
+<td>CONTROL_MESSAGE_ID</td>
+<td>Store the message ID in the <em>updateControls</em> instance</td>
+<td></td>
+</tr>
+<tr>
+<td>CONTROL_MESSAGE_ID</td>
+<td>SEQUENCE</td>
+<td>CONTROLS</td>
+<td>Grab the full value, call teh Controls decoder, store the result in the <em>updateControls</em> instance</td>
+<td></td>
+</tr>
+<tr>
+<td>CONTROLS</td>
+<td>SEQUENCE</td>
+<td>UPDATE_CONTROL_SEQ</td>
+<td>Create a <em>UpdateControls</em> instance, store it in the list</td>
+<td></td>
+</tr>
+<tr>
+<td>CONTROLS</td>
+<td>none</td>
+<td>END</td>
+<td>The decoding is over, we can quit</td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<p>Each of those transitions will have an associated action. They are added in a <em>Grammar</em> class. A <em>GrammarTransition</em> is created and takes 3 or 4 parameters :</p>
+<ul>
+<li>An initial state ('from')</li>
+<li>A final state ('to')</li>
+<li>A tag</li>
+<li>An optional action to execute</li>
+</ul>
+<p>Each state may have many transitions going to many different states, but each transition must use a different tag. </p>
+<p>Here is an example of transition :</p>
+<div class="codehilite"><pre><span class="cm">/**</span>
+<span class="cm"> * Transition from Sequence to messageId</span>
+<span class="cm"> *</span>
+<span class="cm"> * txnEndReq ::= SEQUENCE {</span>
+<span class="cm"> * messageID MessageID OPTIONAL,</span>
+<span class="cm"> * -- msgid associated with non-success resultCode</span>
+<span class="cm"> * ...</span>
+<span class="cm"> * </span>
+<span class="cm"> * Set the messageId into the EndTransactionResponse instance, if it's not SUCCESS.</span>
+<span class="cm"> */</span>
+<span class="kd">super</span><span class="o">.</span><span class="na">transitions</span><span class="o">[</span><span class="n">EndTransactionResponseStatesEnum</span><span class="o">.</span><span class="na">END_TRANSACTION_SEQUENCE_STATE</span><span class="o">.</span><span class="na">ordinal</span><span class="o">()][</span><span class="n">UniversalTag</span><span class="o">.</span><span class="na">INTEGER</span><span class="o">.</span><span class="na">getValue</span><span class="o">()]</span> <span class="o">=</span>
+ <span class="k">new</span> <span class="n">GrammarTransition</span><span class="o"><</span><span class="n">EndTransactionResponseContainer</span><span class="o">>(</span>
+ <span class="n">EndTransactionResponseStatesEnum</span><span class="o">.</span><span class="na">END_TRANSACTION_SEQUENCE_STATE</span><span class="o">,</span>
+ <span class="n">EndTransactionResponseStatesEnum</span><span class="o">.</span><span class="na">FAILED_MESSAGE_ID_STATE</span><span class="o">,</span>
+ <span class="n">UniversalTag</span><span class="o">.</span><span class="na">INTEGER</span><span class="o">.</span><span class="na">getValue</span><span class="o">(),</span>
+ <span class="k">new</span> <span class="n">GrammarAction</span><span class="o"><</span><span class="n">EndTransactionResponseContainer</span><span class="o">>(</span> <span class="s">"Set EndTransactionResponse failed MessageID"</span> <span class="o">)</span>
+ <span class="o">{</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">action</span><span class="o">(</span> <span class="n">EndTransactionResponseContainer</span> <span class="n">container</span> <span class="o">)</span> <span class="kd">throws</span> <span class="n">DecoderException</span>
+ <span class="o">{</span>
+ <span class="n">BerValue</span> <span class="n">value</span> <span class="o">=</span> <span class="n">container</span><span class="o">.</span><span class="na">getCurrentTLV</span><span class="o">().</span><span class="na">getValue</span><span class="o">();</span>
+
+ <span class="k">try</span>
+ <span class="o">{</span>
+ <span class="kt">int</span> <span class="n">failedMessageId</span> <span class="o">=</span> <span class="n">IntegerDecoder</span><span class="o">.</span><span class="na">parse</span><span class="o">(</span> <span class="n">value</span> <span class="o">);</span>
+
+ <span class="k">if</span> <span class="o">(</span> <span class="n">failedMessageId</span> <span class="o">></span> <span class="mi">0</span> <span class="o">)</span>
+ <span class="o">{</span>
+ <span class="n">container</span><span class="o">.</span><span class="na">getEndTransactionResponse</span><span class="o">().</span><span class="na">setFailedMessageId</span><span class="o">(</span> <span class="n">failedMessageId</span> <span class="o">);</span>
+ <span class="o">}</span>
+
+ <span class="c1">// We may have nothing left</span>
+ <span class="n">container</span><span class="o">.</span><span class="na">setGrammarEndAllowed</span><span class="o">(</span> <span class="kc">true</span> <span class="o">);</span>
+ <span class="o">}</span>
+ <span class="k">catch</span> <span class="o">(</span> <span class="n">IntegerDecoderException</span> <span class="n">ide</span> <span class="o">)</span>
+ <span class="o">{</span>
+ <span class="n">LOG</span><span class="o">.</span><span class="na">error</span><span class="o">(</span> <span class="n">I18n</span>
+ <span class="o">.</span><span class="na">err</span><span class="o">(</span> <span class="n">I18n</span><span class="o">.</span><span class="na">ERR_04490_BAD_END_TRANSACTION_COMMIT</span><span class="o">,</span> <span class="n">Strings</span><span class="o">.</span><span class="na">dumpBytes</span><span class="o">(</span> <span class="n">value</span><span class="o">.</span><span class="na">getData</span><span class="o">()</span> <span class="o">),</span> <span class="n">ide</span><span class="o">.</span><span class="na">getMessage</span><span class="o">()</span> <span class="o">)</span> <span class="o">);</span>
+
+ <span class="c1">// This will generate a PROTOCOL_ERROR</span>
+ <span class="k">throw</span> <span class="k">new</span> <span class="nf">DecoderException</span><span class="o">(</span> <span class="n">ide</span><span class="o">.</span><span class="na">getMessage</span><span class="o">(),</span> <span class="n">ide</span> <span class="o">);</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
+ <span class="o">}</span> <span class="o">);</span>
+</pre></div>
+
+
+<p>In this example, we have a transition from a <strong>END_TRANSACTION_SEQUENCE_STATE</strong> state to a <strong>FAILED_MESSAGE_ID</strong> state, which is triggered by an <strong>INTEGER</strong> tag. The executed action is created immediately, but it could have been a separated class.</p>
<div class="nav">
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/15-ldif.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/15-ldif.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/15-ldif.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/16-dsml.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/16-dsml.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/16-dsml.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/17-osgi.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/17-osgi.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/17-osgi.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -185,7 +185,13 @@
}
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="17-osgi">17 - OSGi<a class="headerlink" href="#17-osgi" title="Permanent link">¶</a></h1>
-<p>TODO...</p>
+<p>The <strong>LDAP API</strong> can either be use as a standalone API, or in an <strong>OSGi</strong> environment.</p>
+<h2 id="activators">Activators<a class="headerlink" href="#activators" title="Permanent link">¶</a></h2>
+<p>LdapProtocolCodecActivator</p>
+<h3 id="extrasbundleactivator">ExtrasBundleActivator<a class="headerlink" href="#extrasbundleactivator" title="Permanent link">¶</a></h3>
+<p>This activator loads and initializes extras controls and extended operations :</p>
+<h3 id="defaultactivator">DefaultActivator<a class="headerlink" href="#defaultactivator" title="Permanent link">¶</a></h3>
+<p>This is the base activator. It instanciates and loads the <em>DefaultLdapCodecService</em> class, which loas the default controls and extended operations</p>
<div class="nav">
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/2-general-structure.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/2-general-structure.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/2-general-structure.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/3-building.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/3-building.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/3-building.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/4-asn1.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/4-asn1.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/4-asn1.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/4.1-asn1-tlv.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/4.1-asn1-tlv.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/4.1-asn1-tlv.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/5-network.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/5-network.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/5-network.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -422,6 +422,45 @@ h2:hover > .headerlink, h3:hover > .head
<p>So the <em>ProtocolCodecFilter</em> class is responsible for initializing the codec (it's a <strong>MINA</strong> class), and here, we use a factory to inject the encoder and decoder instances. This factory is <em>LdapProtocolCodecFactory</em>.</p>
<p>This class, which is part of the <em>mina</em> module, instanciate an instance of the statefull <strong>LDAP</strong> encoder and decoder classes, <em>LdapProtocolEncoder</em> and <em>LdapProtocolDecoder</em>, which also belongs to the <em>mina</em> module.</p>
<p>What is important to remember is that <strong>TCP</strong> is not dealing with <strong>LDAP</strong> messages, but with bytes. The decoder must be able to start decoding a message, even if it does not have all the necessary bytes to decode a full <strong>LDAP</strong> message. It should also be able to decode more than one message if the bytes it received contains more than the bytes necessary to hold a message. All of this is handle by MINA anyway, but we must provide a way for the decoder to keep the current state. Check the <a href="codec.html">codec</a> page for more explainations.</p>
+<h2 id="starttls-handling">StartTLS Handling<a class="headerlink" href="#starttls-handling" title="Permanent link">¶</a></h2>
+<p>The <strong>StartTLS</strong> extended operation is a bit specific, as it is set over an existing connection, and based on a <strong>LDAP</strong> message being sent to the remote server. The big plus is that it uses the standard <strong>LDAP</strong> port, so there is no need to declare a dedicated port for a secured connection (aka <strong>LDAPS</strong>).</p>
+<p>The logic is the following :</p>
+<div class="codehilite"><pre>::: text
+- The client sends a **startTLS** extended operation to the server - assuming the server supports it -
+- The server setup a **TLS** 'listener', configure it, and send back an extended response to inform the client it is ready to proceed further. At this point, the server will not proceed any non-handshake messages received for this **LDAP** session, not will it send any response (they will be enqueued)
+- On reception of this response, the client will add the **SslFilter** into the MINA network chain, configure it, and start the handshake (by sending a **CLIENT HELLO** message). No further message can be sent for this session, beside the handsake messages (they will be enqueued and delivered when teh handshake has been completed successfully)
+- The handshake is performed: messages and responses are send and received, up to teh completion point.
+- When the handshake is completed, the **SslFilter** inform the connection that it's done by 'sending' (locally) a **SESSION_SECURED* message
+- enqueued messages are flushed on bith the client and server. We are done, the session is secured.
+</pre></div>
+
+
+<p>There are many aspect that are tricky here. One of them is to be sure we don't send messages to the remote peer while processing the handshake</p>
+<p>On the server :</p>
+<p>Init : the SSLContext is configured to TLS, regardless of the configuration...</p>
+<p>SslHandler.handleExtendedOperation
+ new SslFilter()
+ DefaultIoFilterChain.addFirst()
+ DefaultIoFilterChain.register()
+ SslFilter.onPreAdd()
+ new SslHandler()
+ SslHandler.init()
+ SSLContext.createSSLEngine()
+ [SSLEngine.beginHandshake()] <<<----
+ SslFilter.onPostAdd()
+ write response</p>
+<p>On the client :</p>
+<p>addSslFilter
+ SSLContext.getInstance()
+ new SslFilter()
+ DefaultIoFilterChain.addFirst()
+ DefaultIoFilterChain.register()
+ SslFilter.onPreAdd()
+ new SslHandler()
+ SslHandler.init()
+ SSLContext.createSSLEngine()
+ SSLEngine.beginHandshake() <<<----
+ SslFilter.onPostAdd()</p>
<div class="nav">
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/6-codec.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/6-codec.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/6-codec.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/7-ldap-messages.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/7-ldap-messages.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/7-ldap-messages.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/8-schema.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/8-schema.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/8-schema.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -185,7 +185,119 @@
}
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="8-schema">8 - Schema<a class="headerlink" href="#8-schema" title="Permanent link">¶</a></h1>
-<p>TODO...</p>
+<h2 id="schema-parsers">Schema parsers<a class="headerlink" href="#schema-parsers" title="Permanent link">¶</a></h2>
+<p>We use a set of classes to parse schema elements. There are 11 flavors of schema elements, 8 of them being described in a <strong>RFC</strong>, 3 of them being ApacheDS proprietary:</p>
+<ul>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.2">AttributeType</a></li>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.6">DitContentRule</a></li>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.7.1">DitStructureRule</a></li>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.5">LDAPSyntax</a></li>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.3">MatchingRule</a></li>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.4">MatchingRuleUse</a></li>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.7.2">NameForm</a></li>
+<li><a href="https://tools.ietf.org/html/rfc4512#section-4.1.1">ObjectClass</a></li>
+</ul>
+<p>and</p>
+<ul>
+<li>LdapComparator</li>
+<li>Normalizer</li>
+<li>SyntaxChecker</li>
+</ul>
+<p>We need to be able to parse those schema elements because they can be added into the server as a description (ie, a String representing one of those schema elements as defined by the RFC). For the same reason, the <strong>LDAP API</strong> need to validate that those schema elements are valid before sending them to a <strong>LDAP SERVER</strong>, or to be able to properly parse what it gets from a <strong>LDAP server</strong>.</p>
+<h2 id="strict-vs-quirks-mode">Strict vs quirks mode<a class="headerlink" href="#strict-vs-quirks-mode" title="Permanent link">¶</a></h2>
+<p>Here we have a problem : most of the LDAP server implementation violate the RFC. We can't simply expect the String representing a schema element to be compliant with the RFC. Some typical deviations are :</p>
+<ul>
+<li>OpenLDAP uses some macro instead of OIDs. This is convenient, as it allows to define the root OID with a name, and reuse it in the associated schema elements</li>
+<li>AD and many other servers expect some specific characters to be accepted, like '_', ':', '#', ...</li>
+<li>Sometime, the values may come without quotes, when it's required</li>
+<li>etc.</li>
+</ul>
+<p>We will define the <em>strict mode</em> a mode which follows the <strong>RFC</strong> tightly, and the <em>quirks mode</em> a relaxed version of the parser, more permissive. One can use either the strict or relaxed mode using a flag.</p>
+<h3 id="strict-mode">Strict mode<a class="headerlink" href="#strict-mode" title="Permanent link">¶</a></h3>
+<p>The only thing we will relax is the order in which the various parts of each description is present in a schema description : we don't expect them to be ordered as described in the RFC.</p>
+<p>The various parts are defined using a few syntaxes :</p>
+<ul>
+<li><em>NAME</em>: qdescrs</li>
+<li><em>DESC</em>: qdstring</li>
+<li><em>SUP</em> (<strong>ObjectClass</strong>), <em>MUST</em>, <em>MAY</em>, <em>APPLIES</em>, <em>AUX</em>, <em>NOT</em>: oids</li>
+<li><em>SUP</em> (<strong>AttributeType</strong>), <em>EQUALITY</em>, <em>ORDERING</em>, <em>SUBSTR</em>, <em>FORM</em>, <em>OC</em>: oid</li>
+<li><em>SYNTAX</em> (<strong>AttributeType</strong>): noidlen</li>
+<li><em>SYNTAX</em> (<strong>MathingRule</strong>): numericoid</li>
+<li>
+<p><em>SUP</em> (<strong>DitStructureRule</strong>): ruleids</p>
+</li>
+<li>
+<p><em>descr</em>: oid, qdescrs</p>
+</li>
+<li><em>qdescr</em>: qdescrs, qdescrlist</li>
+</ul>
+<p><em>qdescrs</em> and <em>oids</em> may contain one or many <em>qdescr</em> and <em>oid</em>.</p>
+<h4 id="descr-strict">descr, strict<a class="headerlink" href="#descr-strict" title="Permanent link">¶</a></h4>
+<p>The <em>descr</em> construct is used by <em>oid</em> and <em>qdescrs</em> (an <em>OID</em> can be a name). The strict mode will use this grammar :</p>
+<div class="codehilite"><pre><span class="n">descr</span> <span class="p">::=</span> <span class="n">keystring</span>
+<span class="n">keystring</span> <span class="p">::=</span> <span class="n">leadkeychar</span> <span class="n">keychar</span><span class="o">*</span>
+<span class="n">leadkeychar</span> <span class="p">::=</span> <span class="n">ALPHA</span>
+<span class="n">keychar</span> <span class="p">::=</span> <span class="n">ALPHA</span> <span class="o">|</span> <span class="n">DIGIT</span> <span class="o">|</span> <span class="n">HYPHEN</span>
+<span class="n">ALPHA</span> <span class="p">::=</span> <span class="p">[</span><span class="s">'A'</span><span class="p">..</span><span class="s">'Z'</span><span class="p">]</span> <span class="o">|</span> <span class="p">[</span><span class="s">'a'</span><span class="p">..</span><span class="s">'z'</span><span class="p">]</span>
+<span class="n">DIGIT</span> <span class="p">::=</span> <span class="p">[</span><span class="s">'0'</span><span class="p">..</span><span class="s">'9'</span><span class="p">]</span>
+<span class="n">HYPHEN</span> <span class="p">::=</span> <span class="s">'-'</span>
+<span class="n">SQUOTE</span> <span class="p">::=</span> <span class="s">'\''</span>
+</pre></div>
+
+
+<h4 id="qdstring-strict">qdstring, strict<a class="headerlink" href="#qdstring-strict" title="Permanent link">¶</a></h4>
+<p>A <em>qdstring</em> can contain any type of <strong>UTF-8</strong> characters, except the simple quote or the backslash, which must be encoded. It's always surrounded by simple quotes :</p>
+<div class="codehilite"><pre>qdstring ::= SQUOTE dstring SQUOTE
+dstring ::= ( QS | QQ | QUTF8 )*
+QQ ::= ESC %x32 %x37
+QS ::= ESC %x35 ( %x43 / %x63 )
+QUTF8 ::= QUTF1 | UTFMB
+QUTF1 ::= %x00-26 | %x28-5B | %x5D-7F
+</pre></div>
+
+
+<h4 id="qdescr-strict">qdescr, strict<a class="headerlink" href="#qdescr-strict" title="Permanent link">¶</a></h4>
+<p><em>qdescr</em> is a quoted name, where the first char must be alphabetic, and the following chars must be alphabetic, digits or hyphen. Here is the <strong>ABNF</strong> for <em>qdescr</em> :</p>
+<div class="codehilite"><pre>qdescr ::= SQUOTE descr SQUOTE
+</pre></div>
+
+
+<h4 id="noidlen-strict">noidlen, strict<a class="headerlink" href="#noidlen-strict" title="Permanent link">¶</a></h4>
+<h3 id="relaxed-mode">Relaxed mode<a class="headerlink" href="#relaxed-mode" title="Permanent link">¶</a></h3>
+<h4 id="qdstring-relaxed">qdstring, relaxed<a class="headerlink" href="#qdstring-relaxed" title="Permanent link">¶</a></h4>
+<p>There</p>
+<h4 id="descr-relaxed">descr, relaxed<a class="headerlink" href="#descr-relaxed" title="Permanent link">¶</a></h4>
+<p>The relaxed <em>descr</em> accepts more characters, like underscore, semi-colon, dot, colon or sharp. The leadkeychar will not be mandatory, too. Here is the <strong>ABNF</strong> we will accept :</p>
+<div class="codehilite"><pre><span class="n">relaxed</span><span class="o">-</span><span class="n">descr</span> <span class="p">::=</span> <span class="n">relaxed</span><span class="o">-</span><span class="n">keystring</span>
+<span class="n">leaxed</span><span class="o">-</span><span class="n">keystring</span><span class="p">::=</span> <span class="n">keychar</span><span class="o">+</span>
+<span class="n">relaxed</span><span class="o">-</span><span class="n">keychar</span> <span class="p">::=</span> <span class="n">ALPHA</span> <span class="o">|</span> <span class="n">DIGIT</span> <span class="o">|</span> <span class="n">HYPHEN</span> <span class="o">|</span> <span class="n">UNDERSCORE</span> <span class="o">|</span> <span class="n">SEMICOLON</span> <span class="o">|</span> <span class="n">DOT</span> <span class="o">|</span> <span class="n">COLON</span> <span class="o">|</span> <span class="n">SHARP</span>
+<span class="n">ALPHA</span> <span class="p">::=</span> <span class="p">[</span><span class="s">'A'</span><span class="p">..</span><span class="s">'Z'</span><span class="p">]</span> <span class="o">|</span> <span class="p">[</span><span class="s">'a'</span><span class="p">..</span><span class="s">'z'</span><span class="p">]</span>
+<span class="n">DIGIT</span> <span class="p">::=</span> <span class="p">[</span><span class="s">'0'</span><span class="p">..</span><span class="s">'9'</span><span class="p">]</span>
+<span class="n">HYPHEN</span> <span class="p">::=</span> <span class="s">'-'</span>
+<span class="n">UNDERSCORE</span> <span class="p">::=</span> <span class="s">'_'</span>
+<span class="n">SEMI_COLON</span> <span class="p">::=</span> <span class="s">';'</span>
+<span class="n">COLON</span> <span class="p">::=</span> <span class="s">':'</span>
+<span class="n">SDOT</span> <span class="p">::=</span> <span class="s">'.'</span>
+<span class="n">SHARP</span> <span class="p">::=</span> <span class="s">'#'</span>
+</pre></div>
+
+
+<h4 id="qdescr-relaxed">qdescr, relaxed<a class="headerlink" href="#qdescr-relaxed" title="Permanent link">¶</a></h4>
+<p>Compared to the strict mode, we will accept a non-quoted String, or a String using double quotes. </p>
+<div class="codehilite"><pre>relaxed-qdescr ::= SQUOTE relaxed-descr SQUOTE | DQUOTE relaxed-descr DQUOTE | relaxed-descr
+</pre></div>
+
+
+<h4 id="oid-relaxed">oid, relaxed<a class="headerlink" href="#oid-relaxed" title="Permanent link">¶</a></h4>
+<p>We will accept quoted and double quoted OIDs and Names, in relaxed mode. Here is teh supported <strong>ABNF</strong> :</p>
+<div class="codehilite"><pre>oid-relaxed ::= SQUOTE relaxed-descr SQUOTE | DQUOTE relaxed-descr DQUOTE | descr-relaxed |
+ SQUOTE numericoid SQUOTE | DQUOTE numericoid DQUOTE | numericoid
+</pre></div>
+
+
+<h4 id="noidlen-strict_1">noidlen, strict<a class="headerlink" href="#noidlen-strict_1" title="Permanent link">¶</a></h4>
+<p>Here, we will allow textual syntax name to be used, not only OIDs. For instance, something like <em>SYNTAX IA5String</em> will be allowed.</p>
+<p>We also allow quoted and double quoted OIDs.</p>
<div class="nav">
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/9-dn.html
==============================================================================
--- websites/staging/directory/trunk/content/api/internal-design-guide/9-dn.html (original)
+++ websites/staging/directory/trunk/content/api/internal-design-guide/9-dn.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -185,7 +185,8 @@
}
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="9-dn">9 - DN<a class="headerlink" href="#9-dn" title="Permanent link">¶</a></h1>
-<p>TODO...</p>
+<p>a <strong>DN</strong>, or <strong>Distingusished Name</strong> is a data structure that
+TODO...</p>
<div class="nav">
Modified: websites/staging/directory/trunk/content/api/internal-design-guide/images/extended-request-decorator.graphml
==============================================================================
Binary files - no diff available.
Modified: websites/staging/directory/trunk/content/api/java-api.html
==============================================================================
--- websites/staging/directory/trunk/content/api/java-api.html (original)
+++ websites/staging/directory/trunk/content/api/java-api.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/news.html
==============================================================================
--- websites/staging/directory/trunk/content/api/news.html (original)
+++ websites/staging/directory/trunk/content/api/news.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
@@ -166,7 +166,20 @@
}
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="news">News<a class="headerlink" href="#news" title="Permanent link">¶</a></h1>
-<p><h2 class="news">Apache Directory LDAP API 1.0.0 released <em>posted on June 7th, 2017</em></h2></p>
+<p><h2 class="news">Apache Directory LDAP API 1.0.1 released <em>posted on May 19th, 2018</em></h2></p>
+<p>The Apache Directory Team is proud to announce the availability of version 1.0.1 of the Apache Directory LDAP API.</p>
+<p>The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).</p>
+<p>This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.</p>
+<p>It's also an extensible API : new Controls, schema elements and network layer could be added or used in the near future. It's also OSGi capable.</p>
+<p>Two security issues has been fixed :</p>
+<ul>
+<li>A LDAPS race condition, where some clear text message could be sent over the wire, when using a connection pool</li>
+<li>A StartTLS issue, where the establishmenent of the secured channel can't be made, and the connection is dropped</li>
+</ul>
+<p>Those are two critical issues, and we urge you to upgrade to <strong>Apache LDAP API 1.0.1</strong> if you were using a previous version.</p>
+<p>Downloads are available <a href="downloads.html">here</a> and the User's Guide is <a href="user-guide.html">there</a></p>
+<h2 class="news">Apache Directory LDAP API 1.0.0 released <em>posted on June 7th, 2017</em></h2>
+
<p>The Apache Directory Team is proud to announce the availability of version 1.0.0 final of the Apache Directory LDAP API.</p>
<p>The Apache Directory LDAP API is an ongoing effort to provide an enhanced LDAP API, as a replacement for JNDI and the existing LDAP API (jLdap and Mozilla LDAP API).</p>
<p>This is a schema aware API, with some convenient ways to access a LDAP server. This API is not only targeting the Apache Directory Server, but should work pristine with any LDAP server.</p>
Modified: websites/staging/directory/trunk/content/api/user-guide.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../api/downloads.html">Version 1.0.0</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../api/downloads.html">Version 1.0.1</a> <IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/user-guide/1-introduction.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/1-introduction.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide/1-introduction.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
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 Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/user-guide/1.2-ldap-in-a-few-words.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/1.2-ldap-in-a-few-words.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide/1.2-ldap-in-a-few-words.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>
Modified: websites/staging/directory/trunk/content/api/user-guide/1.4-preparation-to-code.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/1.4-preparation-to-code.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide/1.4-preparation-to-code.html Sat May 19 14:01:37 2018
@@ -104,7 +104,7 @@
</ul>
<h5>Downloads</h5>
<ul>
- <li><a href="./../../api/downloads.html">Version 1.0.0</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+ <li><a href="./../../api/downloads.html">Version 1.0.1</a> <IMG src="./../../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
<li><a href="./../../api/download-old-versions.html">Older versions</a></li>
</ul>
<h5>Getting Started</h5>