On Wed, May 7, 2008 at 7:53 AM, Emmanuel Lecharny <firstname.lastname@example.org> wrote:
in the effort to remove the JNDI from our server, I will have to create a kind of context where we will store some informations, in order to be able to execute the LDAP requests without changing the whole logic.
For instance, the authentication interceptor uses the stored Context to check if the user who submitted a request is already authentified or not (this information is currently stored as a property within a LdapContext, stored into the user's MINA IoSession attributes)
Ldap being a connected protocol, it seems quite natural to define a LdapSession object which will be associated with all new incoming Bind request, which will contains informations like the ones currently defined by JNDI, but also some others. We can have three kinds of data :
- server specific data (the ones which won't change before decades), like Principal, Credentials, Referral...
- user specific data (the ones a use can use, but are optional), like factory.object, language...
- configurable data : some unknown data which may be used by some server extension.
The idea is to declare the first and second kind of data as fields in the LdapSession object, for faster access, and add a Property field to store the third kind of data.