You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2007/04/03 11:39:49 UTC
svn commit: r525116 - in /directory/apacheds/trunk/core/src:
main/java/org/apache/directory/server/core/authn/
main/java/org/apache/directory/server/core/interceptor/
main/java/org/apache/directory/server/core/interceptor/context/
main/java/org/apache/...
Author: elecharny
Date: Tue Apr 3 02:39:47 2007
New Revision: 525116
URL: http://svn.apache.org/viewvc?view=rev&rev=525116
Log:
Modified the unbind operation, using an unbindServiceContext through all the interceptors
Modified:
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindServiceContext.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/Partition.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java
directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java
directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationService.java Tue Apr 3 02:39:47 2007
@@ -461,7 +461,9 @@
throws NamingException
{
BindServiceContext bindCtx = (BindServiceContext)bindContext;
- LdapDN normBindDn = bindCtx.getNormalizedBindDn();
+
+ // The DN is always normalized here
+ LdapDN normBindDn = bindCtx.getBindDn();
String bindUpDn = bindCtx.getBindDn().getUpName();
if ( IS_DEBUG )
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java Tue Apr 3 02:39:47 2007
@@ -228,8 +228,8 @@
}
- public void unbind( NextInterceptor next, LdapDN bindDn ) throws NamingException
+ public void unbind( NextInterceptor next, ServiceContext unbindContext ) throws NamingException
{
- next.unbind( bindDn );
+ next.unbind( unbindContext );
}
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java Tue Apr 3 02:39:47 2007
@@ -240,13 +240,13 @@
throws NamingException;
/**
- * Filters {@link Partition#bind(org.apache.directory.shared.ldap.name.LdapDN,byte[],java.util.List,String)} call.
+ * Filters {@link Partition#bind(ServiceContext)} call.
*/
void bind( NextInterceptor next, ServiceContext bindContext )
throws NamingException;
/**
- * Filters {@link Partition#unbind(org.apache.directory.shared.ldap.name.LdapDN)} call.
+ * Filters {@link Partition#unbind(ServiceContext)} call.
*/
- void unbind( NextInterceptor next, LdapDN bindDn ) throws NamingException;
+ void unbind( NextInterceptor next, ServiceContext unbindContext ) throws NamingException;
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java Tue Apr 3 02:39:47 2007
@@ -209,9 +209,9 @@
}
- public void unbind( NextInterceptor next, LdapDN bindDn ) throws NamingException
+ public void unbind( NextInterceptor next, ServiceContext unbindContext ) throws NamingException
{
- nexus.unbind( bindDn );
+ nexus.unbind( unbindContext );
}
};
@@ -741,14 +741,15 @@
}
- public void unbind( LdapDN bindDn ) throws NamingException
+ public void unbind( ServiceContext unbindContext ) throws NamingException
{
Entry node = getStartingEntry();
Interceptor head = node.configuration.getInterceptor();
NextInterceptor next = node.nextInterceptor;
+
try
{
- head.unbind( next, bindDn );
+ head.unbind( next, unbindContext );
}
catch ( NamingException ne )
{
@@ -1444,14 +1445,14 @@
}
- public void unbind( LdapDN bindDn ) throws NamingException
+ public void unbind( ServiceContext unbindContext ) throws NamingException
{
Entry next = getNextEntry();
Interceptor interceptor = next.configuration.getInterceptor();
try
{
- interceptor.unbind( next.nextInterceptor, bindDn );
+ interceptor.unbind( next.nextInterceptor, unbindContext );
}
catch ( NamingException ne )
{
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java Tue Apr 3 02:39:47 2007
@@ -173,7 +173,7 @@
void bind( ServiceContext bindContext ) throws NamingException;
/**
- * Calls the next interceptor's {@link Interceptor#unbind(NextInterceptor,org.apache.directory.shared.ldap.name.LdapDN)}
+ * Calls the next interceptor's {@link Interceptor#unbind(NextInterceptor, ServiceContext))}
*/
- void unbind( LdapDN bindDn ) throws NamingException;
+ void unbind( ServiceContext unbindContext ) throws NamingException;
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindServiceContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindServiceContext.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindServiceContext.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindServiceContext.java Tue Apr 3 02:39:47 2007
@@ -32,32 +32,39 @@
*/
public class BindServiceContext implements ServiceContext
{
+ /** The principal DN */
private LdapDN bindDn;
- private LdapDN normalizedBindDn;
+
+ /** The list of supported mechanisms */
private List<String> mechanisms;
+
+ /** The password */
private byte[] credentials;
+
+ /** The SASL identifier */
private String saslAuthId;
+ /**
+ * @return The Principal's DN
+ */
public LdapDN getBindDn()
{
return bindDn;
}
+ /**
+ * Set the principal's DN.
+ *
+ * @param bindDn The principal's DN
+ */
public void setBindDn( LdapDN bindDn )
{
this.bindDn = bindDn;
}
- public LdapDN getNormalizedBindDn()
- {
- return normalizedBindDn;
- }
-
- public void setNormalizedBindDn( LdapDN normalizedBindDn )
- {
- this.normalizedBindDn = normalizedBindDn;
- }
-
+ /**
+ * @return The list of supported mechanisms
+ */
public List<String> getMechanisms()
{
return mechanisms;
@@ -68,6 +75,9 @@
this.mechanisms = mechanisms;
}
+ /**
+ * @return The principal password
+ */
public byte[] getCredentials()
{
return credentials;
@@ -78,6 +88,9 @@
this.credentials = credentials;
}
+ /**
+ * @return The SASL authentication ID
+ */
public String getSaslAuthId()
{
return saslAuthId;
@@ -87,5 +100,4 @@
{
this.saslAuthId = saslAuthId;
}
-
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizationService.java Tue Apr 3 02:39:47 2007
@@ -405,9 +405,8 @@
public void bind( NextInterceptor next, ServiceContext ctx ) throws NamingException
{
- BindServiceContext bindContext = (BindServiceContext)ctx;
- bindContext.setNormalizedBindDn( LdapDN.normalize( bindContext.getBindDn(), attrNormalizers ) );
- next.bind( bindContext );
+ LdapDN.normalize( ((BindServiceContext)ctx).getBindDn(), attrNormalizers );
+ next.bind( ctx );
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java Tue Apr 3 02:39:47 2007
@@ -46,6 +46,7 @@
import org.apache.directory.server.core.configuration.PartitionConfiguration;
import org.apache.directory.server.core.interceptor.context.BindServiceContext;
import org.apache.directory.server.core.interceptor.context.ServiceContext;
+import org.apache.directory.server.core.interceptor.context.UnbindServiceContext;
import org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration;
import org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition;
import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
@@ -663,14 +664,14 @@
// ------------------------------------------------------------------------
public void bind( ServiceContext bindContext ) throws NamingException
{
- Partition partition = getBackend( ((BindServiceContext)bindContext).getNormalizedBindDn() );
+ Partition partition = getBackend( ((BindServiceContext)bindContext).getBindDn() );
partition.bind( bindContext );
}
- public void unbind( LdapDN bindDn ) throws NamingException
+ public void unbind( ServiceContext unbindContext ) throws NamingException
{
- Partition partition = getBackend( bindDn );
- partition.unbind( bindDn );
+ Partition partition = getBackend( ((UnbindServiceContext)unbindContext).getUnbindDn() );
+ partition.unbind( unbindContext );
}
@@ -987,6 +988,7 @@
private Partition getBackend( LdapDN dn ) throws NamingException
{
LdapDN clonedDn = ( LdapDN ) dn.clone();
+
while ( clonedDn.size() > 0 )
{
if ( partitions.containsKey( clonedDn.toString() ) )
@@ -996,6 +998,7 @@
clonedDn.remove( clonedDn.size() - 1 );
}
+
throw new LdapNameNotFoundException( dn.getUpName() );
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/Partition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/Partition.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/Partition.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/Partition.java Tue Apr 3 02:39:47 2007
@@ -20,7 +20,6 @@
package org.apache.directory.server.core.partition;
-import java.util.List;
import java.util.Map;
import javax.naming.Context;
@@ -300,8 +299,8 @@
* need not support this operation. This operation is here to enable those
* interested in implementing virtual directories with ApacheDS.
*
- * @param bindDn the normalized dn of the principal attempting to unbind
+ * @param unbindContext the context used to unbind
* @throws NamingException if something goes wrong
*/
- void unbind( LdapDN bindDn ) throws NamingException;
+ void unbind( ServiceContext unbindContext ) throws NamingException;
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java Tue Apr 3 02:39:47 2007
@@ -691,16 +691,16 @@
}
}
- public void unbind( LdapDN bindDn, Collection bypass ) throws NamingException
+ public void unbind( ServiceContext unbindContext, Collection bypass ) throws NamingException
{
ensureStarted();
InvocationStack stack = InvocationStack.getInstance();
Object[] args = new Object[]
- { bindDn };
+ { unbindContext };
stack.push( new Invocation( this, caller, "unbind", args, bypass ) );
try
{
- this.configuration.getInterceptorChain().unbind( bindDn );
+ this.configuration.getInterceptorChain().unbind( unbindContext );
}
finally
{
@@ -715,9 +715,9 @@
}
- public void unbind( LdapDN bindDn ) throws NamingException
+ public void unbind( ServiceContext unbindContext ) throws NamingException
{
- unbind( bindDn, null );
+ unbind( unbindContext, null );
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java Tue Apr 3 02:39:47 2007
@@ -421,7 +421,7 @@
}
- public final void unbind( LdapDN bindDn ) throws NamingException
+ public final void unbind( ServiceContext unbindContext ) throws NamingException
{
}
}
Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java?view=diff&rev=525116&r1=525115&r2=525116
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java Tue Apr 3 02:39:47 2007
@@ -21,13 +21,13 @@
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import junit.framework.TestCase;
@@ -65,7 +65,7 @@
{ new MockInterceptor( "0" ), new MockInterceptor( "1" ), new MockInterceptor( "2" ),
new MockInterceptor( "3" ), new MockInterceptor( "4" ) };
private InterceptorChain chain;
- private List interceptors = new ArrayList( interceptorArray.length );
+ private List<Interceptor> interceptors = new ArrayList<Interceptor>( interceptorArray.length );
protected void setUp() throws Exception
@@ -151,7 +151,7 @@
Context ctx = new DeadContext();
DirectoryService ds = new MockDirectoryService();
PartitionNexusProxy proxy = new PartitionNexusProxy( ctx, ds );
- Collection bypass = new HashSet();
+ Set<String> bypass = new HashSet<String>();
bypass.add( "0" );
bypass.add( "1" );
Invocation i = new Invocation( proxy, ctx, "lookup", new Object[]
@@ -185,7 +185,7 @@
Context ctx = new DeadContext();
DirectoryService ds = new MockDirectoryService();
PartitionNexusProxy proxy = new PartitionNexusProxy( ctx, ds );
- Collection bypass = new HashSet();
+ Set<String> bypass = new HashSet<String>();
bypass.add( "0" );
bypass.add( "4" );
Invocation i = new Invocation( proxy, ctx, "lookup", new Object[]
@@ -215,7 +215,7 @@
Context ctx = new DeadContext();
DirectoryService ds = new MockDirectoryService();
PartitionNexusProxy proxy = new PartitionNexusProxy( ctx, ds );
- Collection bypass = new HashSet();
+ Set<String> bypass = new HashSet<String>();
bypass.add( "1" );
bypass.add( "3" );
Invocation i = new Invocation( proxy, ctx, "lookup", new Object[]
@@ -441,10 +441,10 @@
}
- public void unbind( NextInterceptor next, LdapDN bindDn ) throws NamingException
+ public void unbind( NextInterceptor next, ServiceContext unbindContext ) throws NamingException
{
interceptors.add( this );
- next.unbind( bindDn );
+ next.unbind( unbindContext );
}
}