You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2011/01/17 14:52:29 UTC
svn commit: r1059926 - in /directory/apacheds/trunk:
core-api/src/main/java/org/apache/directory/server/core/interceptor/context/
ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/
Author: kayyagari
Date: Mon Jan 17 13:52:29 2011
New Revision: 1059926
URL: http://svn.apache.org/viewvc?rev=1059926&view=rev
Log:
o fix for DIRSERVER-1600
o added a test case
Modified:
directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchOperationContext.java
directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/SearchRequestReturningAttributesTest.java
Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchOperationContext.java?rev=1059926&r1=1059925&r2=1059926&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchOperationContext.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchOperationContext.java Mon Jan 17 13:52:29 2011
@@ -20,6 +20,9 @@
package org.apache.directory.server.core.interceptor.context;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Set;
import javax.naming.directory.SearchControls;
@@ -75,7 +78,19 @@ public class SearchOperationContext exte
this.sizeLimit = searchRequest.getSizeLimit();
this.timeLimit = searchRequest.getTimeLimit();
this.typesOnly = searchRequest.getTypesOnly();
- setReturningAttributes( searchRequest.getAttributes() );
+
+ List<String> ats = searchRequest.getAttributes();
+
+ // section 4.5.1.8 of RFC 4511
+ //1. An empty list with no attributes requests the return of all user attributes.
+ if ( ats.isEmpty() )
+ {
+ ats = new ArrayList<String>();
+ ats.add( SchemaConstants.ALL_USER_ATTRIBUTES );
+ ats = Collections.unmodifiableList( ats );
+ }
+
+ setReturningAttributes( ats );
if ( requestControls.containsKey( ManageDsaITControl.CONTROL_OID ) )
{
Modified: directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/SearchRequestReturningAttributesTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/SearchRequestReturningAttributesTest.java?rev=1059926&r1=1059925&r2=1059926&view=diff
==============================================================================
--- directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/SearchRequestReturningAttributesTest.java (original)
+++ directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/search/SearchRequestReturningAttributesTest.java Mon Jan 17 13:52:29 2011
@@ -23,6 +23,7 @@ package org.apache.directory.shared.clie
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -33,10 +34,13 @@ import org.apache.directory.server.annot
import org.apache.directory.server.core.annotations.ApplyLdifs;
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
import org.apache.directory.shared.ldap.cursor.Cursor;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.filter.SearchScope;
import org.apache.directory.shared.ldap.message.Response;
+import org.apache.directory.shared.ldap.message.SearchRequest;
+import org.apache.directory.shared.ldap.message.SearchRequestImpl;
import org.apache.directory.shared.ldap.message.SearchResultEntry;
import org.apache.directory.shared.ldap.name.DN;
import org.junit.AfterClass;
@@ -511,4 +515,33 @@ public class SearchRequestReturningAttri
assertTrue( entry.containsAttribute( "entryUUID" ) );
assertTrue( entry.containsAttribute( "entryCSN" ) );
}
+
+
+ /**
+ * DIRSERVER-1600
+ */
+ @Test
+ public void testSearchTypesOnly() throws Exception
+ {
+ SearchRequest sr = new SearchRequestImpl();
+ sr.setBase( new DN( "uid=admin,ou=system" ) );
+ sr.setFilter( "(uid=admin)" );
+ sr.setScope( SearchScope.OBJECT );
+ sr.setTypesOnly( true );
+
+ Cursor<Response> cursor = connection.search( sr );
+ int count = 0;
+ Entry response = null;
+
+ while ( cursor.next() )
+ {
+ response = ( ( SearchResultEntry ) cursor.get() ).getEntry();
+ assertNotNull( response );
+ count++;
+ }
+ cursor.close();
+
+ assertEquals( 1, count );
+ assertNull( response.get( SchemaConstants.UID_AT ).get() );
+ }
}