Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.0-RC3
-
None
-
None
Description
After having profiled the server, I found that the LdapDN<init>(Name) has been called 3000 times, because the LdapPrincipal contains a Name instead of a LdapDN element.
We should check that the passed Name is not an instance of LdapDN before calling new LdapDN( Name) in
org.apache.directory.server.core.authz.DefaultAuthorizationService.protectLookUp() method
:
...
LdapDN principalDn = new LdapDN( ( ( ServerContext ) ctx ).getPrincipal().getJndiName() );
...
could be :
Name name = ( ( ServerContext ) ctx ).getPrincipal().getJndiName() ;
LdapDN principalDn= ( name instanceof LdapDN ? name.clone() : new LdapDN( name ) );