Issue Details (XML | Word | Printable)

Key: DIRSERVER-169
Type: Bug Bug
Status: Closed Closed
Resolution: Later
Priority: Major Major
Assignee: Alex Karasulu
Reporter: Luke Taylor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Directory ApacheDS

Incorrect SearchResult name and "compare" failure using CoreContextFactory

Created: 31/Jan/06 12:02 AM   Updated: 25/Aug/07 09:18 PM
Return to search
Component/s: core
Affects Version/s: 1.5.0, 1.0.2, 1.0.1, 1.0, 1.0-RC4, 1.0-RC3, 1.0-RC2, 1.0-RC1, pre-1.0
Fix Version/s: 1.5.1

Time Tracking:
Not Specified

File Attachments:
  Size
Java Source File Licensed for inclusion in ASF works DIRSERVER169TestCase.java 2006-08-20 10:45 PM Luke Taylor 4 kB
Java Source File Licensed for inclusion in ASF works LdapTestServer.java 2006-08-19 06:27 PM Luke Taylor 8 kB
Zip Archive Licensed for inclusion in ASF works TestCase.zip 2006-01-31 12:04 AM Luke Taylor 4 kB
Environment:
OS X,
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-83)
Java HotSpot(TM) Client VM (build 1.5.0_05-48, mixed mode, sharing)
Issue Links:
Reference
 

Resolution Date: 25/Aug/07 09:18 PM


 Description  « Hide
Attached is a test case following on from my post a while back to the mailing list, viz:

My setup is like this:

I have a simple DIT with a root "dc=acegisecurity,dc=org". This has two subcontexts "ou=people" and "ou=groups" for my users and roles respectively. When the test base class instantiated, I create a
MutableStartupConfiguration and add a partition to it with the suffix "dc=acegisecurity,dc=org". I then create a context with this configuration as follows:

    env.setProperty( Context.PROVIDER_URL, "dc=acegisecurity,dc=org" );
    env.setProperty( Context.INITIAL_CONTEXT_FACTORY,
             CoreContextFactory.class.getName());
    env.putAll( cfg.toJndiEnvironment() );

    serverContext = new InitialDirContext( env );

When I need a context in my tests it is created the same way.

Bind authentication works fine in both scenarios. I have problems with two things when trying to use CoreContextFactory :

1. The name returned by a search. When I do a search for a user in the directory, I get back the full DN rather than the name relative to the context I search in. So if I call

   ctx.search("ou=people", "(uid={0})", new String[] {"bob"}, ctls);

on a context obtained as above, I get back a SearchResult with name

"uid=bob,ou=people,dc=acegisecurity,dc=org"

whereas with the full server (or OpenLDAP) I get

"uid=bob"

as expected. This then unfortunately leads to an attempt to bind with an an unknown DN which causes the infinite recursion problem.

2. Performing "compare" operations. I had problems with this before, as reported in

http://issues.apache.org/jira/browse/DIRLDAP-77

but this now works with the full server, thanks to Emmanuel's speedy response. Running the same search code against a context obtained from CoreContextFactory fails however. A compare is never performed and the search returns an empty enumeration. Is there some way I can get my client code (as posted in JIRA):

     SearchControls ctls = new SearchControls();
     ctls.setReturningAttributes(new String[0]);
     ctls.setSearchScope(SearchControls.OBJECT_SCOPE);

     String filter = "(userPassword={0})";
     NamingEnumeration results = ctx.search(dn, filter, new
           Object[]{password.getBytes()}, ctls);

to trigger a compare call on the context? The compare/search also fails for non-binary attributes.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #437255 Sun Aug 27 00:13:31 UTC 2006 akarasulu partial fix for DIRSERVER-169 and test case for DIRSERVER-715
Files Changed
ADD /directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/BinarySearchTest.java
ADD /directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER169ITest.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/BTreeSearchResultEnumeration.java

Repository Revision Date User Message
ASF #437261 Sun Aug 27 00:37:41 UTC 2006 akarasulu partial fix for DIRSERVER-169 and a test case for DIRSERVER-715
Files Changed
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/BTreeSearchResultEnumeration.java
ADD /directory/trunks/apacheds/server-unit/src/test/java/org/apache/directory/server/BinarySearchTest.java (from /directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/BinarySearchTest.java)
ADD /directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER169ITest.java (from /directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER169ITest.java)

Repository Revision Date User Message
ASF #437312 Sun Aug 27 07:03:57 UTC 2006 akarasulu Fix for DIRSERVER-169 and partially for DIRSERVER-715
Files Changed
MODIFY /directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/schema/NoOpNormalizer.java
ADD /directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ByteArrayComparator.java
MODIFY /directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/name/NameComponentNormalizer.java
ADD /directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/schema/ByteArrayComparatorTest.java
MODIFY /directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/name/SimpleNameComponentNormalizer.java
MODIFY /directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/filter/SimpleNode.java
MODIFY /directory/branches/shared/0.9.5/ldap/src/main/antlr/filter-parser.g

Repository Revision Date User Message
ASF #437313 Sun Aug 27 07:07:03 UTC 2006 akarasulu Fix for DIRSERVER-169 and partially for DIRSERVER-715
Files Changed
ADD /directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ByteArrayComparator.java (from /directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ByteArrayComparator.java)
MODIFY /directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/schema/NoOpNormalizer.java
MODIFY /directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/NameComponentNormalizer.java
ADD /directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/schema/ByteArrayComparatorTest.java (from /directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/schema/ByteArrayComparatorTest.java)
MODIFY /directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/SimpleNameComponentNormalizer.java
MODIFY /directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/filter/SimpleNode.java
MODIFY /directory/trunks/shared/ldap/src/main/antlr/filter-parser.g

Repository Revision Date User Message
ASF #437314 Sun Aug 27 07:08:03 UTC 2006 akarasulu Fix for DIRSERVER-169 and partially for DIRSERVER-715
Files Changed
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/schema/ConcreteNameComponentNormalizer.java
MODIFY /directory/branches/apacheds/1.0/server-unit/src/test/java/org/apache/directory/server/BinarySearchTest.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java
MODIFY /directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/SearchContextITest.java
MODIFY /directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER169ITest.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/LeafEvaluator.java
MODIFY /directory/branches/apacheds/1.0/core/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java

Repository Revision Date User Message
ASF #437315 Sun Aug 27 07:09:46 UTC 2006 akarasulu Fix for DIRSERVER-169 and partially for DIRSERVER-715
Files Changed
MODIFY /directory/trunks/apacheds/server-unit/src/test/java/org/apache/directory/server/BinarySearchTest.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java
MODIFY /directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/SearchContextITest.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/LeafEvaluator.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java
MODIFY /directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER169ITest.java
MODIFY /directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/ConcreteNameComponentNormalizer.java