You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2006/01/17 06:17:53 UTC
svn commit: r369686 - in /directory/trunks:
apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/
apacheds/standalone/simple/unit/src/test/java/org/apache/ldap/server/
common/ldap/src/main/java/org/apache/ldap/common/codec/ com...
Author: akarasulu
Date: Mon Jan 16 21:17:36 2006
New Revision: 369686
URL: http://svn.apache.org/viewcvs?rev=369686&view=rev
Log:
fixed encoding issues and started populating referrals
Modified:
directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java
directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java
directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java
directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java
directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java
directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java
directory/trunks/apacheds/standalone/simple/unit/src/test/java/org/apache/ldap/server/ReferralTest.java
directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/codec/LdapConstants.java
directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/message/ReferralImpl.java
Modified: directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java (original)
+++ directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/AddHandler.java Mon Jan 16 21:17:36 2006
@@ -19,6 +19,7 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import javax.naming.ReferralException;
import javax.naming.ldap.LdapContext;
import org.apache.ldap.common.exception.LdapException;
@@ -26,6 +27,7 @@
import org.apache.ldap.common.message.Control;
import org.apache.ldap.common.message.LdapResult;
import org.apache.ldap.common.message.ManageDsaITControl;
+import org.apache.ldap.common.message.ReferralImpl;
import org.apache.ldap.common.message.ResultCodeEnum;
import org.apache.ldap.common.util.ExceptionUtils;
import org.apache.ldap.server.protocol.SessionRegistry;
@@ -71,6 +73,22 @@
}
ctx.setRequestControls( ( Control[] ) req.getControls().values().toArray( EMPTY_CONTROLS ) );
ctx.createSubcontext( req.getEntry(), req.getAttributes() );
+ }
+ catch( ReferralException e )
+ {
+ ReferralImpl refs = new ReferralImpl();
+ result.setReferral( refs );
+ result.setResultCode( ResultCodeEnum.REFERRAL );
+ result.setErrorMessage( "Encountered referral attempting to handle add request." );
+ /* coming up null causing a NPE */
+ // result.setMatchedDn( e.getResolvedName().toString() );
+ do
+ {
+ refs.addLdapUrl( ( String ) e.getReferralInfo() );
+ }
+ while( e.skipReferral() );
+ session.write( req.getResultResponse() );
+ return;
}
catch( NamingException e )
{
Modified: directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java (original)
+++ directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/CompareHandler.java Mon Jan 16 21:17:36 2006
@@ -19,6 +19,7 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import javax.naming.ReferralException;
import javax.naming.ldap.LdapContext;
import org.apache.ldap.common.exception.LdapException;
@@ -26,6 +27,7 @@
import org.apache.ldap.common.message.Control;
import org.apache.ldap.common.message.LdapResult;
import org.apache.ldap.common.message.ManageDsaITControl;
+import org.apache.ldap.common.message.ReferralImpl;
import org.apache.ldap.common.message.ResultCodeEnum;
import org.apache.ldap.common.name.LdapName;
import org.apache.ldap.common.util.ExceptionUtils;
@@ -78,6 +80,22 @@
{
result.setResultCode( ResultCodeEnum.COMPAREFALSE );
}
+ }
+ catch( ReferralException e )
+ {
+ ReferralImpl refs = new ReferralImpl();
+ result.setReferral( refs );
+ result.setResultCode( ResultCodeEnum.REFERRAL );
+ result.setErrorMessage( "Encountered referral attempting to handle compare request." );
+ /* coming up null causing a NPE */
+ // result.setMatchedDn( e.getResolvedName().toString() );
+ do
+ {
+ refs.addLdapUrl( ( String ) e.getReferralInfo() );
+ }
+ while( e.skipReferral() );
+ session.write( req.getResultResponse() );
+ return;
}
catch ( Exception e )
{
Modified: directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java (original)
+++ directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/DeleteHandler.java Mon Jan 16 21:17:36 2006
@@ -19,6 +19,7 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import javax.naming.ReferralException;
import javax.naming.ldap.LdapContext;
import org.apache.ldap.common.exception.LdapException;
@@ -26,6 +27,7 @@
import org.apache.ldap.common.message.DeleteRequest;
import org.apache.ldap.common.message.LdapResult;
import org.apache.ldap.common.message.ManageDsaITControl;
+import org.apache.ldap.common.message.ReferralImpl;
import org.apache.ldap.common.message.ResultCodeEnum;
import org.apache.ldap.common.util.ExceptionUtils;
import org.apache.ldap.server.protocol.SessionRegistry;
@@ -66,6 +68,22 @@
}
ctx.setRequestControls( ( Control[] ) req.getControls().values().toArray( EMPTY_CONTROLS ) );
ctx.destroySubcontext( req.getName() );
+ }
+ catch( ReferralException e )
+ {
+ ReferralImpl refs = new ReferralImpl();
+ result.setReferral( refs );
+ result.setResultCode( ResultCodeEnum.REFERRAL );
+ result.setErrorMessage( "Encountered referral attempting to handle delete request." );
+ /* coming up null causing a NPE */
+ // result.setMatchedDn( e.getResolvedName().toString() );
+ do
+ {
+ refs.addLdapUrl( ( String ) e.getReferralInfo() );
+ }
+ while( e.skipReferral() );
+ session.write( req.getResultResponse() );
+ return;
}
catch( NamingException e )
{
Modified: directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java (original)
+++ directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyDnHandler.java Mon Jan 16 21:17:36 2006
@@ -19,6 +19,7 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import javax.naming.ReferralException;
import javax.naming.ldap.LdapContext;
import org.apache.ldap.common.exception.LdapException;
@@ -26,6 +27,7 @@
import org.apache.ldap.common.message.LdapResult;
import org.apache.ldap.common.message.ManageDsaITControl;
import org.apache.ldap.common.message.ModifyDnRequest;
+import org.apache.ldap.common.message.ReferralImpl;
import org.apache.ldap.common.message.ResultCodeEnum;
import org.apache.ldap.common.name.LdapName;
import org.apache.ldap.common.util.ExceptionUtils;
@@ -118,6 +120,22 @@
newDn.add( req.getNewRdn() );
ctx.rename( new LdapName( req.getName() ), newDn );
}
+ }
+ catch( ReferralException e )
+ {
+ ReferralImpl refs = new ReferralImpl();
+ result.setReferral( refs );
+ result.setResultCode( ResultCodeEnum.REFERRAL );
+ result.setErrorMessage( "Encountered referral attempting to handle modifyDn request." );
+ /* coming up null causing a NPE */
+ // result.setMatchedDn( e.getResolvedName().toString() );
+ do
+ {
+ refs.addLdapUrl( ( String ) e.getReferralInfo() );
+ }
+ while( e.skipReferral() );
+ session.write( req.getResultResponse() );
+ return;
}
catch ( NamingException e )
{
Modified: directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java (original)
+++ directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/ModifyHandler.java Mon Jan 16 21:17:36 2006
@@ -19,6 +19,7 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import javax.naming.ReferralException;
import javax.naming.directory.ModificationItem;
import javax.naming.ldap.LdapContext;
@@ -27,6 +28,7 @@
import org.apache.ldap.common.message.LdapResult;
import org.apache.ldap.common.message.ManageDsaITControl;
import org.apache.ldap.common.message.ModifyRequest;
+import org.apache.ldap.common.message.ReferralImpl;
import org.apache.ldap.common.message.ResultCodeEnum;
import org.apache.ldap.common.util.ExceptionUtils;
import org.apache.ldap.server.protocol.SessionRegistry;
@@ -69,6 +71,22 @@
ctx.setRequestControls( ( Control[] ) req.getControls().values().toArray( EMPTY_CONTROLS ) );
Object[] mods = req.getModificationItems().toArray( EMPTY );
ctx.modifyAttributes( req.getName(), ( ModificationItem[] ) mods );
+ }
+ catch( ReferralException e )
+ {
+ ReferralImpl refs = new ReferralImpl();
+ result.setReferral( refs );
+ result.setResultCode( ResultCodeEnum.REFERRAL );
+ result.setErrorMessage( "Encountered referral attempting to handle modify request." );
+ /* coming up null causing a NPE */
+ // result.setMatchedDn( e.getResolvedName().toString() );
+ do
+ {
+ refs.addLdapUrl( ( String ) e.getReferralInfo() );
+ }
+ while( e.skipReferral() );
+ session.write( req.getResultResponse() );
+ return;
}
catch ( NamingException e )
{
Modified: directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java (original)
+++ directory/trunks/apacheds/protocols/ldap/src/main/java/org/apache/ldap/server/protocol/support/SearchHandler.java Mon Jan 16 21:17:36 2006
@@ -24,6 +24,7 @@
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
+import javax.naming.ReferralException;
import javax.naming.directory.SearchControls;
import javax.naming.ldap.LdapContext;
@@ -35,6 +36,7 @@
import org.apache.ldap.common.message.LdapResult;
import org.apache.ldap.common.message.ManageDsaITControl;
import org.apache.ldap.common.message.PersistentSearchControl;
+import org.apache.ldap.common.message.ReferralImpl;
import org.apache.ldap.common.message.Response;
import org.apache.ldap.common.message.ResultCodeEnum;
import org.apache.ldap.common.message.ScopeEnum;
@@ -284,6 +286,23 @@
}
return;
}
+ }
+ catch( ReferralException e )
+ {
+ LdapResult result = req.getResultResponse().getLdapResult();
+ ReferralImpl refs = new ReferralImpl();
+ result.setReferral( refs );
+ result.setResultCode( ResultCodeEnum.REFERRAL );
+ result.setErrorMessage( "Encountered referral attempting to handle add request." );
+ /* coming up null causing a NPE */
+ // result.setMatchedDn( e.getResolvedName().toString() );
+ do
+ {
+ refs.addLdapUrl( ( String ) e.getReferralInfo() );
+ }
+ while( e.skipReferral() );
+ session.write( req.getResultResponse() );
+ return;
}
catch( NamingException e )
{
Modified: directory/trunks/apacheds/standalone/simple/unit/src/test/java/org/apache/ldap/server/ReferralTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/apacheds/standalone/simple/unit/src/test/java/org/apache/ldap/server/ReferralTest.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/apacheds/standalone/simple/unit/src/test/java/org/apache/ldap/server/ReferralTest.java (original)
+++ directory/trunks/apacheds/standalone/simple/unit/src/test/java/org/apache/ldap/server/ReferralTest.java Mon Jan 16 21:17:36 2006
@@ -90,8 +90,7 @@
/**
- * Get's the root "ou=system" using the SUN JNDI provider on the embedded
- * ApacheDS instance.
+ * Get's the root "ou=system" using the SUN JNDI provider on the embedded ApacheDS instance
*/
private LdapContext getSystemRoot() throws NamingException
{
Modified: directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/codec/LdapConstants.java
URL: http://svn.apache.org/viewcvs/directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/codec/LdapConstants.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/codec/LdapConstants.java (original)
+++ directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/codec/LdapConstants.java Mon Jan 16 21:17:36 2006
@@ -76,7 +76,7 @@
public static final int SEARCH_SUBSTRINGS_FINAL_TAG = 0x82;
public static final int SEARCH_MATCH_VALUE_TAG = 0x83;
public static final int BIND_REQUEST_SASL_TAG = 0x83;
- public static final int LDAP_RESULT_REFERRAL_SEQUENCE_TAG = 0x83;
+ public static final int LDAP_RESULT_REFERRAL_SEQUENCE_TAG = 0xa3;
public static final int DN_ATTRIBUTES_FILTER_TAG = 0x84;
public static final int SERVER_SASL_CREDENTIAL_TAG = 0x87;
public static final int PRESENT_FILTER_TAG = 0x87;
Modified: directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/message/ReferralImpl.java
URL: http://svn.apache.org/viewcvs/directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/message/ReferralImpl.java?rev=369686&r1=369685&r2=369686&view=diff
==============================================================================
--- directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/message/ReferralImpl.java (original)
+++ directory/trunks/common/ldap/src/main/java/org/apache/ldap/common/message/ReferralImpl.java Mon Jan 16 21:17:36 2006
@@ -33,7 +33,7 @@
{
static final long serialVersionUID = 2638820668325359096L;
/** Sequence of LDAPUrls composing this Referral */
- private final HashSet urls = new HashSet();
+ private final List urls = new ArrayList();
// ------------------------------------------------------------------------