Hi all,
in order to complete the examples in our Advanced User's Guide for
ApacheDS, I have started to create and document a simple interceptor as
a starting point for developers, who are interested to extend the server
that way.
http://cwiki.apache.org/confluence/display/DIRxSBOX/Implementing+a+simple+interceptor
It would be great if those who know the internals of the server would
review the example and check whether it is OK. Although it works, there
is probably still room for improvement. Any feedback is highly appreciated.
If the page is reviewed and complete, I will move it to the Advanced
User's Guide (chapter 6. Extending the server).
And at least one thing is probably wrong in the example: The position of
the interceptor within the chain. Currently, I simply add it at the end
with this code:
DirectoryService directoryService = new DefaultDirectoryService();
directoryService.setShutdownHookEnabled(true);
LdapServer ldapServer = new LdapServer();
ldapServer.setDirectoryService(directoryService);
ldapServer.setAllowAnonymousAccess(true);
List<Interceptor> is = directoryService.getInterceptors();
is.add(new PasswordHashInterceptor());
directoryService.setInterceptors(is);
Any recommendations where to add it in the list, and how to accomplish
the task of a positional addition, e.g. "after SubentryInterceptor"?
The default list of interceptors goes this:
# org.apache.directory.server.core.normalization.NormalizationInterceptor
# org.apache.directory.server.core.authn.AuthenticationInterceptor
# org.apache.directory.server.core.referral.ReferralInterceptor
# org.apache.directory.server.core.authz.AciAuthorizationInterceptor
# org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor
# org.apache.directory.server.core.exception.ExceptionInterceptor
# org.apache.directory.server.core.changelog.ChangeLogInterceptor
#
org.apache.directory.server.core.operational.OperationalAttributeInterceptor
# org.apache.directory.server.core.schema.SchemaInterceptor
# org.apache.directory.server.core.subtree.SubentryInterceptor
# org.apache.directory.server.core.collective.CollectiveAttributeInterceptor
# org.apache.directory.server.core.event.EventInterceptor
# org.apache.directory.server.core.trigger.TriggerInterceptor
# org.apache.directory.server.core.journal.JournalInterceptor
Thanks in advance,
StefanZ