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 2011/12/01 14:25:35 UTC
svn commit: r1209069 [1/8] - in /directory/apacheds/branches/apacheds-txns:
core-api/ core-api/src/main/java/org/apache/directory/server/core/api/
core-api/src/main/java/org/apache/directory/server/core/api/interceptor/
core-api/src/main/java/org/apach...
Author: elecharny
Date: Thu Dec 1 13:25:26 2011
New Revision: 1209069
URL: http://svn.apache.org/viewvc?rev=1209069&view=rev
Log:
Merged back trunk into Selcuk's branch
Added:
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/operations/getRootDse/GetRootDseTest.java
- copied unchanged from r1209047, directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/getRootDse/GetRootDseTest.java
directory/apacheds/branches/apacheds-txns/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/GetRootDseTest.java
- copied unchanged from r1209046, directory/apacheds/trunk/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/GetRootDseTest.java
Modified:
directory/apacheds/branches/apacheds-txns/core/ (props changed)
directory/apacheds/branches/apacheds-txns/core-api/ (props changed)
directory/apacheds/branches/apacheds-txns/core-api/pom.xml
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/BaseInterceptor.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/AbstractOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/DeleteOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/GetRootDseOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/HasEntryOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/ListOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/LookupOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveAndRenameOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/OperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/RenameOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/SearchOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/UnbindOperationContext.java
directory/apacheds/branches/apacheds-txns/core-api/src/test/java/org/apache/directory/server/core/api/MockOperation.java
directory/apacheds/branches/apacheds-txns/core-integ/ (props changed)
directory/apacheds/branches/apacheds-txns/core-integ/src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java (props changed)
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/AbstractMetaSchemaObjectHandler.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaComparatorHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaMatchingRuleHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaNormalizerHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaObjectClassHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSchemaHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxCheckerHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerIT.java
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java (props changed)
directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
directory/apacheds/branches/apacheds-txns/core-jndi/ (props changed)
directory/apacheds/branches/apacheds-txns/core-jndi/pom.xml
directory/apacheds/branches/apacheds-txns/core-shared/ (props changed)
directory/apacheds/branches/apacheds-txns/core-shared/pom.xml
directory/apacheds/branches/apacheds-txns/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
directory/apacheds/branches/apacheds-txns/core/pom.xml
directory/apacheds/branches/apacheds-txns/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java
directory/apacheds/branches/apacheds-txns/interceptors/admin/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/admin/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/authn/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/authn/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java
directory/apacheds/branches/apacheds-txns/interceptors/authz/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/authz/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/changelog/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/changelog/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/collective/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/collective/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/event/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/event/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/exception/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/exception/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/journal/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/journal/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/normalization/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/normalization/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/operational/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/operational/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/operational/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java
directory/apacheds/branches/apacheds-txns/interceptors/referral/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/referral/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/schema/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/schema/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java
directory/apacheds/branches/apacheds-txns/interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryManager.java
directory/apacheds/branches/apacheds-txns/interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryModifier.java
directory/apacheds/branches/apacheds-txns/interceptors/subtree/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/subtree/pom.xml
directory/apacheds/branches/apacheds-txns/interceptors/trigger/ (props changed)
directory/apacheds/branches/apacheds-txns/interceptors/trigger/pom.xml
directory/apacheds/branches/apacheds-txns/jdbm-partition/ (props changed)
directory/apacheds/branches/apacheds-txns/jdbm-partition/pom.xml
directory/apacheds/branches/apacheds-txns/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/tree/PartitionTreeTest.java (props changed)
directory/apacheds/branches/apacheds-txns/kerberos-test/ (props changed)
directory/apacheds/branches/apacheds-txns/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/KerberosTcpITest.java
directory/apacheds/branches/apacheds-txns/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/KerberosUdpITest.java
directory/apacheds/branches/apacheds-txns/ldap-client-test/ (props changed)
directory/apacheds/branches/apacheds-txns/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/LdapSSLConnectionTest.java
directory/apacheds/branches/apacheds-txns/ldif-partition/ (props changed)
directory/apacheds/branches/apacheds-txns/ldif-partition/pom.xml
directory/apacheds/branches/apacheds-txns/ldif-partition/src/test/java/org/apache/directory/server/core/partition/ldif/LdifPartitionTest.java
directory/apacheds/branches/apacheds-txns/protocol-ldap/ (props changed)
directory/apacheds/branches/apacheds-txns/protocol-ldap/pom.xml
directory/apacheds/branches/apacheds-txns/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java (props changed)
directory/apacheds/branches/apacheds-txns/server-config/ (props changed)
directory/apacheds/branches/apacheds-txns/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java (props changed)
directory/apacheds/branches/apacheds-txns/server-config/src/main/java/org/apache/directory/server/config/beans/InterceptorBean.java
directory/apacheds/branches/apacheds-txns/server-config/src/main/resources/ (props changed)
directory/apacheds/branches/apacheds-txns/server-config/src/main/resources/config.ldif
directory/apacheds/branches/apacheds-txns/server-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java (props changed)
directory/apacheds/branches/apacheds-txns/service-builder/ (props changed)
directory/apacheds/branches/apacheds-txns/service-builder/pom.xml
directory/apacheds/branches/apacheds-txns/xdbm-partition/ (props changed)
directory/apacheds/branches/apacheds-txns/xdbm-partition/pom.xml
directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/AbstractBTreePartition.java
Propchange: directory/apacheds/branches/apacheds-txns/core/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 1 13:25:26 2011
@@ -5,6 +5,6 @@
/directory/apacheds/branches/apacheds-jdbm/core:1160768-1164072
/directory/apacheds/branches/apacheds-kerberos-codec-2.0/core:1040956-1043765
/directory/apacheds/branches/milestones/core:1072812-1075328
-/directory/apacheds/trunk/core:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1201283
+/directory/apacheds/trunk/core:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1209047
/directory/apacheds/trunk/interceptors/core:1183435-1186974
/directory/studio/trunk/core:1067786-1067997
Propchange: directory/apacheds/branches/apacheds-txns/core-api/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 1 13:25:26 2011
@@ -5,6 +5,6 @@
/directory/apacheds/branches/apacheds-kerberos-codec-2.0/core-api:1040956-1043765
/directory/apacheds/branches/apacheds-osgi/core-api:1185681-1199319
/directory/apacheds/branches/milestones/core-api:1072812-1075328
-/directory/apacheds/trunk/core-api:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1201283
+/directory/apacheds/trunk/core-api:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1209047
/directory/apacheds/trunk/interceptors/core-api:1183435-1186974
/directory/studio/trunk/core-api:1067786-1067997
Modified: directory/apacheds/branches/apacheds-txns/core-api/pom.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/pom.xml?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/pom.xml (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/pom.xml Thu Dec 1 13:25:26 2011
@@ -43,33 +43,23 @@
</dependency>
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>apacheds-i18n</artifactId>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
</dependency>
-
+
<dependency>
- <groupId>${project.groupId}</groupId>
+ <groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-core-constants</artifactId>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>
-
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
+ <groupId>org.apache.directory.server</groupId>
+ <artifactId>apacheds-i18n</artifactId>
</dependency>
<dependency>
<groupId>org.apache.directory.shared</groupId>
- <artifactId>shared-ldap-client-api</artifactId>
+ <artifactId>shared-i18n</artifactId>
</dependency>
<dependency>
@@ -79,18 +69,17 @@
<dependency>
<groupId>org.apache.directory.shared</groupId>
- <artifactId>shared-i18n</artifactId>
+ <artifactId>shared-ldap-client-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.directory.shared</groupId>
- <artifactId>shared-ldap-codec-standalone</artifactId>
- <scope>provided</scope>
+ <artifactId>shared-ldap-codec-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.directory.shared</groupId>
- <artifactId>shared-ldap-codec-core</artifactId>
+ <artifactId>shared-ldap-extras-util</artifactId>
</dependency>
<dependency>
@@ -109,8 +98,8 @@
</dependency>
<dependency>
- <groupId>org.apache.directory.shared</groupId>
- <artifactId>shared-ldap-extras-util</artifactId>
+ <groupId>org.apache.mina</groupId>
+ <artifactId>mina-core</artifactId>
</dependency>
<dependency>
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java Thu Dec 1 13:25:26 2011
@@ -557,7 +557,7 @@ public class LdapCoreSessionConnection i
}
catch ( LdapNoPermissionException lnpe )
{
- // Special case to deal with insufficient permissions
+ // Special case to deal with insufficient permissions
return false;
}
catch ( LdapException le )
@@ -570,6 +570,24 @@ public class LdapCoreSessionConnection i
/**
* {@inheritDoc}
*/
+ public Entry getRootDse() throws LdapException
+ {
+ return lookup( Dn.ROOT_DSE, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public Entry getRootDse( String... attributes ) throws LdapException
+ {
+ return lookup( Dn.ROOT_DSE, attributes );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
public Entry lookup( Dn dn ) throws LdapException
{
return _lookup( dn, null );
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/BaseInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/BaseInterceptor.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/BaseInterceptor.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/BaseInterceptor.java Thu Dec 1 13:25:26 2011
@@ -371,7 +371,7 @@ public abstract class BaseInterceptor im
* @param operationContext The operation context
* @return The next interceptor in the list for this operation
*/
- private Interceptor getNextInterceptor( OperationContext operationContext )
+ protected Interceptor getNextInterceptor( OperationContext operationContext )
{
String currentInterceptor = operationContext.getNextInterceptor();
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/AbstractOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/AbstractOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/AbstractOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/AbstractOperationContext.java Thu Dec 1 13:25:26 2011
@@ -21,17 +21,14 @@ package org.apache.directory.server.core
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.LdapPrincipal;
-import org.apache.directory.server.core.api.OperationEnum;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.shared.ldap.model.entry.Entry;
-import org.apache.directory.shared.ldap.model.entry.Modification;
import org.apache.directory.shared.ldap.model.exception.LdapException;
import org.apache.directory.shared.ldap.model.message.Control;
import org.apache.directory.shared.ldap.model.name.Dn;
@@ -110,18 +107,27 @@ public abstract class AbstractOperationC
}
+ /**
+ * {@inheritDoc}
+ */
public CoreSession getSession()
{
return session;
}
+ /**
+ * {@inheritDoc}
+ */
public void setSession( CoreSession session )
{
this.session = session;
}
+ /**
+ * {@inheritDoc}
+ */
protected void setAuthorizedPrincipal( LdapPrincipal authorizedPrincipal )
{
this.authorizedPrincipal = authorizedPrincipal;
@@ -148,48 +154,72 @@ public abstract class AbstractOperationC
}
+ /**
+ * {@inheritDoc}
+ */
public void addRequestControl( Control requestControl )
{
requestControls.put( requestControl.getOid(), requestControl );
}
+ /**
+ * {@inheritDoc}
+ */
public Control getRequestControl( String numericOid )
{
return requestControls.get( numericOid );
}
+ /**
+ * {@inheritDoc}
+ */
public boolean hasRequestControl( String numericOid )
{
return requestControls.containsKey( numericOid );
}
+ /**
+ * {@inheritDoc}
+ */
public boolean hasRequestControls()
{
return ! requestControls.isEmpty();
}
+ /**
+ * {@inheritDoc}
+ */
public void addResponseControl( Control responseControl )
{
responseControls.put( responseControl.getOid(), responseControl );
}
+ /**
+ * {@inheritDoc}
+ */
public Control getResponseControl( String numericOid )
{
return responseControls.get( numericOid );
}
+ /**
+ * {@inheritDoc}
+ */
public boolean hasResponseControl( String numericOid )
{
return responseControls.containsKey( numericOid );
}
+ /**
+ * {@inheritDoc}
+ */
public Control[] getResponseControls()
{
if ( responseControls.isEmpty() )
@@ -201,18 +231,27 @@ public abstract class AbstractOperationC
}
+ /**
+ * {@inheritDoc}
+ */
public boolean hasResponseControls()
{
return ! responseControls.isEmpty();
}
+ /**
+ * {@inheritDoc}
+ */
public int getResponseControlCount()
{
return responseControls.size();
}
+ /**
+ * {@inheritDoc}
+ */
public void addRequestControls( Control[] requestControls )
{
for ( Control c : requestControls )
@@ -222,6 +261,9 @@ public abstract class AbstractOperationC
}
+ /**
+ * {@inheritDoc}
+ */
public void setRequestControls( Map<String, Control> requestControls )
{
this.requestControls = requestControls;
@@ -253,22 +295,6 @@ public abstract class AbstractOperationC
/**
- * Gets the set of bypassed Interceptors.
- *
- * @return the set of bypassed Interceptors
- */
- public Collection<String> getByPassed()
- {
- if ( byPassed == null )
- {
- return Collections.emptyList();
- }
-
- return Collections.unmodifiableCollection( byPassed );
- }
-
-
- /**
* {@inheritDoc}
*/
public final void setInterceptors( List<String> interceptors )
@@ -292,45 +318,30 @@ public abstract class AbstractOperationC
return interceptor;
}
-
-
+
+
/**
- * Sets the set of bypassed Interceptors.
- *
- * @param byPassed the set of bypassed Interceptors
+ * @return The number of the current interceptor in the list
*/
- public void setByPassed( Collection<String> byPassed )
+ public int getCurrentInterceptor()
{
- this.byPassed = byPassed;
+ return currentInterceptor;
}
-
-
+
+
/**
- * Checks to see if an Interceptor is bypassed for this operation.
- *
- * @param interceptorName the interceptorName of the Interceptor to check for bypass
- * @return true if the Interceptor should be bypassed, false otherwise
- */
- public boolean isBypassed( String interceptorName )
- {
- return byPassed != null && byPassed.contains( interceptorName );
- }
-
-
- /**
- * Checks to see if any Interceptors are bypassed by this operation.
- *
- * @return true if at least one bypass exists
+ * Sets the current interceptor number to a new value.
+ *
+ * @param currentInterceptor The new current interceptor value
*/
- public boolean hasBypass()
+ public void setCurrentInterceptor( int currentInterceptor )
{
- return byPassed != null && !byPassed.isEmpty();
+ this.currentInterceptor = currentInterceptor;
}
private void setup( AbstractOperationContext opContext )
{
- opContext.setPreviousOperation( this );
next = opContext;
opContext.setAuthorizedPrincipal( authorizedPrincipal );
}
@@ -339,18 +350,6 @@ public abstract class AbstractOperationC
/**
* {@inheritDoc}
*/
- public void add( Entry entry, Collection<String> byPassed ) throws LdapException
- {
- AddOperationContext addContext = new AddOperationContext( session, entry );
- setup( addContext );
- addContext.setByPassed( byPassed );
- session.getDirectoryService().getOperationManager().add( addContext );
- }
-
-
- /**
- * {@inheritDoc}
- */
public void delete( Dn dn ) throws LdapException
{
DeleteOperationContext deleteContext = new DeleteOperationContext( session, dn );
@@ -362,16 +361,6 @@ public abstract class AbstractOperationC
/**
* {@inheritDoc}
*/
- public boolean hasEntry( Dn dn, Collection<String> byPassed ) throws LdapException
- {
- HasEntryOperationContext hasEntryContext = new HasEntryOperationContext( session, dn );
- setup( hasEntryContext );
- hasEntryContext.setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.HAS_ENTRY ) );
-
- return session.getDirectoryService().getOperationManager().hasEntry( hasEntryContext );
- }
-
-
public Entry lookup( LookupOperationContext lookupContext ) throws LdapException
{
if ( lookupContext != next )
@@ -383,39 +372,22 @@ public abstract class AbstractOperationC
}
- public Entry lookup( Dn dn, Collection<String> byPassed ) throws LdapException
- {
- LookupOperationContext lookupContext = newLookupContext( dn );
- lookupContext.setByPassed( byPassed );
- return session.getDirectoryService().getOperationManager().lookup( lookupContext );
- }
-
-
- public Entry lookup( Dn dn, Collection<String> byPassed, String... attrIds ) throws LdapException
- {
- LookupOperationContext lookupContext = newLookupContext( dn );
- lookupContext.setByPassed( byPassed );
- lookupContext.setAttrsId( attrIds );
- return session.getDirectoryService().getOperationManager().lookup( lookupContext );
- }
-
-
- public void modify( Dn dn, List<Modification> mods, Collection<String> byPassed ) throws LdapException
- {
- ModifyOperationContext modifyContext = new ModifyOperationContext( session, dn, mods );
- setup( modifyContext );
- modifyContext.setByPassed( byPassed );
- session.getDirectoryService().getOperationManager().modify( modifyContext );
- }
-
-
// TODO - need synchronization here and where we update links
+ /**
+ * {@inheritDoc}
+ */
public LookupOperationContext newLookupContext( Dn dn )
{
LookupOperationContext lookupContext = new LookupOperationContext( session, dn );
setup( lookupContext );
+
return lookupContext;
}
+
+
+ /**
+ * {@inheritDoc}
+ */
public LdapPrincipal getEffectivePrincipal()
{
if ( authorizedPrincipal != null )
@@ -430,60 +402,6 @@ public abstract class AbstractOperationC
// -----------------------------------------------------------------------
// OperationContext Linked List Methods
// -----------------------------------------------------------------------
-
-
- public boolean isFirstOperation()
- {
- return previous == null;
- }
-
-
- public OperationContext getFirstOperation()
- {
- if ( previous == null )
- {
- return this;
- }
-
- return previous.getFirstOperation();
- }
-
-
- public OperationContext getLastOperation()
- {
- if ( next == null )
- {
- return this;
- }
-
- return next.getLastOperation();
- }
-
-
- public OperationContext getNextOperation()
- {
- return next;
- }
-
-
- protected void setNextOperation( OperationContext next )
- {
- this.next = next;
- }
-
-
- public OperationContext getPreviousOperation()
- {
- return previous;
- }
-
-
- protected void setPreviousOperation( OperationContext previous )
- {
- this.previous = previous;
- }
-
-
/**
* @param entry the entry to set
*/
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java Thu Dec 1 13:25:26 2011
@@ -6,16 +6,16 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
- *
+ * under the License.
+ *
*/
package org.apache.directory.server.core.api.interceptor.context;
@@ -58,7 +58,11 @@ public class CompareOperationContext ext
public CompareOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+ }
}
@@ -70,7 +74,11 @@ public class CompareOperationContext ext
public CompareOperationContext( CoreSession session, Dn dn )
{
super( session, dn );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+ }
}
@@ -83,7 +91,11 @@ public class CompareOperationContext ext
{
super( session );
this.oid = oid;
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+ }
}
@@ -96,7 +108,11 @@ public class CompareOperationContext ext
{
super( session, dn );
this.oid = oid;
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+ }
}
@@ -110,7 +126,11 @@ public class CompareOperationContext ext
super( session, dn );
this.oid = oid;
this.value = value;
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+ }
}
@@ -120,7 +140,11 @@ public class CompareOperationContext ext
this.oid = compareRequest.getAttributeId();
this.value = compareRequest.getAssertionValue();
this.requestControls = compareRequest.getControls();
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.COMPARE ) );
+ }
if ( requestControls.containsKey( ManageDsaIT.OID ) )
{
@@ -136,7 +160,7 @@ public class CompareOperationContext ext
/**
* @return The compared OID
*/
- public String getOid()
+ public String getOid()
{
return oid;
}
@@ -146,7 +170,7 @@ public class CompareOperationContext ext
* Set the compared OID
* @param oid The compared OID
*/
- public void setOid( String oid )
+ public void setOid( String oid )
{
this.oid = oid;
}
@@ -155,7 +179,7 @@ public class CompareOperationContext ext
/**
* @return The value to compare
*/
- public Value<?> getValue()
+ public Value<?> getValue()
{
return value;
}
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/DeleteOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/DeleteOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/DeleteOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/DeleteOperationContext.java Thu Dec 1 13:25:26 2011
@@ -6,16 +6,16 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
- *
+ * under the License.
+ *
*/
package org.apache.directory.server.core.api.interceptor.context;
@@ -43,7 +43,11 @@ public class DeleteOperationContext exte
public DeleteOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.DELETE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.DELETE ) );
+ }
}
@@ -55,14 +59,23 @@ public class DeleteOperationContext exte
public DeleteOperationContext( CoreSession session, Dn deleteDn )
{
super( session, deleteDn );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.DELETE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.DELETE ) );
+ }
}
public DeleteOperationContext( CoreSession session, DeleteRequest deleteRequest )
{
super( session, deleteRequest.getName() );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.DELETE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.DELETE ) );
+ }
+
requestControls = deleteRequest.getControls();
if ( requestControls.containsKey( ManageDsaIT.OID ) )
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/GetRootDseOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/GetRootDseOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/GetRootDseOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/GetRootDseOperationContext.java Thu Dec 1 13:25:26 2011
@@ -39,7 +39,11 @@ public class GetRootDseOperationContext
public GetRootDseOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.GET_ROOT_DSE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.GET_ROOT_DSE ) );
+ }
}
@@ -51,7 +55,11 @@ public class GetRootDseOperationContext
public GetRootDseOperationContext( CoreSession session, Dn dn )
{
super( session, dn );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.GET_ROOT_DSE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.GET_ROOT_DSE ) );
+ }
}
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/HasEntryOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/HasEntryOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/HasEntryOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/HasEntryOperationContext.java Thu Dec 1 13:25:26 2011
@@ -40,7 +40,11 @@ public class HasEntryOperationContext ex
public HasEntryOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.HAS_ENTRY ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.HAS_ENTRY ) );
+ }
}
@@ -52,7 +56,11 @@ public class HasEntryOperationContext ex
public HasEntryOperationContext( CoreSession session, Dn entryDn )
{
super( session, entryDn );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.HAS_ENTRY ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.HAS_ENTRY ) );
+ }
}
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/ListOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/ListOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/ListOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/ListOperationContext.java Thu Dec 1 13:25:26 2011
@@ -42,7 +42,11 @@ public class ListOperationContext extend
public ListOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.LIST ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.LIST ) );
+ }
}
@@ -54,7 +58,11 @@ public class ListOperationContext extend
public ListOperationContext( CoreSession session, Dn dn )
{
super( session, dn );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.LIST ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.LIST ) );
+ }
}
@@ -69,7 +77,11 @@ public class ListOperationContext extend
public ListOperationContext( CoreSession session, Dn dn, Set<AttributeTypeOptions> returningAttributes )
{
super( session, dn, returningAttributes );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.LIST ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.LIST ) );
+ }
}
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/LookupOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/LookupOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/LookupOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/LookupOperationContext.java Thu Dec 1 13:25:26 2011
@@ -148,6 +148,7 @@ public class LookupOperationContext exte
if ( ( attrsId != null ) && ( attrsId.length > 0 ) )
{
this.attrsId = new ArrayList<String>( Arrays.asList( attrsId ) );
+ int nbNoAttribute = 0;
// filter out the '+' and '*' and set boolean parameters
for ( String id : this.attrsId )
@@ -163,11 +164,7 @@ public class LookupOperationContext exte
else if ( id.equals( SchemaConstants.NO_ATTRIBUTE ) )
{
noAttribute = true;
- allOperational = null;
- allUser = null;
-
- // We can stop here
- break;
+ nbNoAttribute++;
}
}
@@ -183,7 +180,16 @@ public class LookupOperationContext exte
if ( noAttribute != null )
{
- this.attrsId.clear();
+ if ( attrsId.length == nbNoAttribute )
+ {
+ this.attrsId.clear();
+ }
+ else
+ {
+ // We have to ignore the 1.1
+ this.attrsId.remove( SchemaConstants.NO_ATTRIBUTE );
+ noAttribute = false;
+ }
}
}
}
@@ -262,7 +268,7 @@ public class LookupOperationContext exte
/**
- * @return The flag telling if the "+" attribute has been used
+ * @return The flag telling if the "1.1" attribute has been used
*/
public boolean hasNoAttribute()
{
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveAndRenameOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveAndRenameOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveAndRenameOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveAndRenameOperationContext.java Thu Dec 1 13:25:26 2011
@@ -47,7 +47,11 @@ public class MoveAndRenameOperationConte
public MoveAndRenameOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE_AND_RENAME ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE_AND_RENAME ) );
+ }
}
@@ -63,7 +67,11 @@ public class MoveAndRenameOperationConte
{
super( session, oldDn, newRdn, delOldRdn );
this.newSuperiorDn = newSuperiorDn;
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE_AND_RENAME ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE_AND_RENAME ) );
+ }
try
{
@@ -81,7 +89,11 @@ public class MoveAndRenameOperationConte
// super sets the newRdn and the delOldRdn members and tests
super( session, modifyDnRequest );
this.newSuperiorDn = modifyDnRequest.getNewSuperior();
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE_AND_RENAME ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE_AND_RENAME ) );
+ }
if ( newSuperiorDn == null )
{
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/MoveOperationContext.java Thu Dec 1 13:25:26 2011
@@ -58,7 +58,11 @@ public class MoveOperationContext extend
public MoveOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE ) );
+ }
}
@@ -71,7 +75,11 @@ public class MoveOperationContext extend
this.newSuperior = newSuperior;
oldSuperior = oldDn.getParent();
rdn = ( oldDn.getRdn().clone() );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE ) );
+ }
try
{
@@ -88,7 +96,11 @@ public class MoveOperationContext extend
{
super( session, modifyDnRequest.getName() );
this.newSuperior = modifyDnRequest.getNewSuperior();
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.MOVE ) );
+ }
if ( newSuperior == null )
{
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/OperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/OperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/OperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/OperationContext.java Thu Dec 1 13:25:26 2011
@@ -6,29 +6,26 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
- *
+ * under the License.
+ *
*/
package org.apache.directory.server.core.api.interceptor.context;
-import java.util.Collection;
import java.util.List;
import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.LdapPrincipal;
import org.apache.directory.server.core.api.entry.ClonedServerEntry;
-import org.apache.directory.server.core.api.interceptor.Interceptor;
import org.apache.directory.shared.ldap.model.entry.Entry;
-import org.apache.directory.shared.ldap.model.entry.Modification;
import org.apache.directory.shared.ldap.model.exception.LdapException;
import org.apache.directory.shared.ldap.model.message.Control;
import org.apache.directory.shared.ldap.model.name.Dn;
@@ -43,54 +40,23 @@ import org.apache.directory.shared.ldap.
public interface OperationContext
{
/**
- * Checks to see if this operation is the first operation in a chain of
- * operations performed on the DirectoryService. The first operation in
- * a sequence of operations, is not a byproduct of another operation
- * unlike operations following in the sequence. The other operations
- * following the first, occur as a side effect to complete this first
- * operation.
- *
- * @return true if the operation is the first, false otherwise
- */
- boolean isFirstOperation();
-
-
- /**
- * Gets the first, direct operation issued against the DirectoryService.
- *
- * @return the first, direct operation issued
- */
- OperationContext getFirstOperation();
-
-
- /**
- * Gets the previous, operation issued on the DirectoryService.
- *
- * @return the previous, operation issued
- */
- OperationContext getPreviousOperation();
-
-
- /**
- * Gets the next, indirect operation issued on the DirectoryService.
- *
- * @return the next, indirect operation issued
+ * @return The number of the current interceptor in the list
*/
- OperationContext getNextOperation();
+ int getCurrentInterceptor();
/**
- * Gets the last, operation issued on the DirectoryService.
- *
- * @return the last, operation issued
+ * Sets the current interceptor number to a new value.
+ *
+ * @param currentInterceptor The new current interceptor value
*/
- OperationContext getLastOperation();
+ void setCurrentInterceptor( int currentInterceptor );
/**
- * Gets the effective principal for this operation which may not be the
+ * Gets the effective principal for this operation which may not be the
* same as the authenticated principal when the session for this context
- * has an explicit authorization id, or this operation was applied with
+ * has an explicit authorization id, or this operation was applied with
* the proxy authorization control.
*
* @see CoreSession#getAuthenticatedPrincipal()
@@ -117,23 +83,23 @@ public interface OperationContext
/**
* Gets the server entry associated with the target Dn of this
* OperationContext. The entry associated with the Dn may be altered
- * during the course of processing an LDAP operation through the
+ * during the course of processing an LDAP operation through the
* InterceptorChain. This place holder is put here to prevent the need
* for repetitive lookups of the target entry. Furthermore the returned
* entry may be altered by any Interceptor in the chain and this is why a
- * ClonedServerEntry is returned instead of a Entry. A
+ * ClonedServerEntry is returned instead of a Entry. A
* ClonedServerEntry has an immutable reference to the original state of
* the target entry. The original state can be accessed via a call to
- * {@link ClonedServerEntry#getOriginalEntry()}. The return value may be
- * null in which case any lookup performed to access it may set it to
+ * {@link ClonedServerEntry#getOriginalEntry()}. The return value may be
+ * null in which case any lookup performed to access it may set it to
* prevent the need for subsequent lookups.
*
- * Also note that during the course of handling some operations such as
+ * Also note that during the course of handling some operations such as
* those that rename, move or rename and move the entry, may alter the Dn
* of this entry. Interceptor implementors should not presume the Dn or
- * the values contained in this entry are currently what is present in the
- * DIT. The original entry contained in the ClonedServerEntry shoudl be
- * used as the definitive source of information about the state of the
+ * the values contained in this entry are currently what is present in the
+ * DIT. The original entry contained in the ClonedServerEntry shoudl be
+ * used as the definitive source of information about the state of the
* entry in the DIT before returning from the Partition subsystem.
*
* @return target entry associated with the Dn of this OperationContext
@@ -158,7 +124,7 @@ public interface OperationContext
void addResponseControl( Control responseControl );
- /**
+ /**
* Checks to see if a response control is present on this operation.
*
* @param numericOid the numeric OID of the control also known as it's type OID
@@ -179,7 +145,7 @@ public interface OperationContext
/**
* Gets all the response controls producted during this operation.
*
- * @return an array over all the response controls
+ * @return an array over all the response controls
*/
Control[] getResponseControls();
@@ -208,7 +174,7 @@ public interface OperationContext
void addRequestControl( Control requestControl );
- /**
+ /**
* Checks to see if a request control is present on this request.
*
* @param numericOid the numeric OID of the control also known as it's type OID
@@ -249,31 +215,7 @@ public interface OperationContext
/**
- * Checks to see if an Interceptor is bypassed for this operation.
- *
- * @param interceptorName the interceptorName of the Interceptor to check for bypass
- * @return true if the Interceptor should be bypassed, false otherwise
- */
- boolean isBypassed( String interceptorName );
-
-
- /**
- * Checks to see if any Interceptors are bypassed by this Invocation.
- *
- * @return true if at least one bypass exists
- */
- boolean hasBypass();
-
-
- /**
- * Gets the set of bypassed Interceptors.
- *
- * @return the set of bypassed Interceptors
- */
- Collection<String> getByPassed();
-
- /**
- * Gets the next interceptor in the list of interceptors. The
+ * Gets the next interceptor in the list of interceptors. The
* position in the list will be incremented.
*
* @return The next interceptor from the list of interceptors
@@ -290,14 +232,6 @@ public interface OperationContext
/**
- * Sets the set of bypassed Interceptors.
- *
- * @param byPassed the set of bypassed Interceptors
- */
- void setByPassed( Collection<String> byPassed );
-
-
- /**
* Gets the session associated with this operation.
*
* @return the session associated with this operation
@@ -308,30 +242,16 @@ public interface OperationContext
// -----------------------------------------------------------------------
// Utility Factory Methods to Create New OperationContexts
// -----------------------------------------------------------------------
-
-
LookupOperationContext newLookupContext( Dn dn );
- Entry lookup( Dn dn, Collection<String> byPass ) throws LdapException;
-
-
- Entry lookup( Dn dn, Collection<String> byPass, String... attrIds ) throws LdapException;
-
-
Entry lookup( LookupOperationContext lookupContext ) throws LdapException;
- void modify( Dn dn, List<Modification> mods, Collection<String> byPass ) throws LdapException;
-
-
- void add( Entry entry, Collection<String> byPass ) throws LdapException;
-
-
/**
* Process the delete for inner operations. This is only valid for SubschemaSubentry
* operations, and will most certainly be removed later.
- *
+ *
* @param dn
* @throws LdapException
*/
@@ -339,17 +259,6 @@ public interface OperationContext
/**
- * Checks to see if an entry exists.
- *
- * @param dn the distinguished name of the entry to check
- * @param byPass collection of {@link Interceptor}'s to bypass for this check
- * @return true if the entry exists, false if it does not
- * @throws Exception on failure to perform this operation
- */
- boolean hasEntry( Dn dn, Collection<String> byPass ) throws LdapException;
-
-
- /**
* Set the throwReferral flag to true
*/
void throwReferral();
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/RenameOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/RenameOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/RenameOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/RenameOperationContext.java Thu Dec 1 13:25:26 2011
@@ -55,7 +55,11 @@ public class RenameOperationContext exte
public RenameOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
+ }
}
@@ -71,7 +75,11 @@ public class RenameOperationContext exte
super( session, oldDn );
this.newRdn = newRdn;
this.deleteOldRdn = deleteOldRdn;
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
+ }
}
@@ -79,7 +87,11 @@ public class RenameOperationContext exte
{
super( session, modifyDnRequest.getName() );
this.newRdn = modifyDnRequest.getNewRdn();
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.RENAME ) );
+ }
if ( newRdn == null )
{
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/SearchOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/SearchOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/SearchOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/SearchOperationContext.java Thu Dec 1 13:25:26 2011
@@ -58,7 +58,11 @@ public class SearchOperationContext exte
public SearchOperationContext( CoreSession session )
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+ }
}
@@ -69,7 +73,11 @@ public class SearchOperationContext exte
public SearchOperationContext( CoreSession session, SearchRequest searchRequest ) throws LdapException
{
super( session );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+ }
this.dn = searchRequest.getBase();
this.filter = searchRequest.getFilter();
@@ -114,7 +122,11 @@ public class SearchOperationContext exte
timeLimit = searchControls.getTimeLimit();
sizeLimit = searchControls.getCountLimit();
typesOnly = searchControls.getReturningObjFlag();
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+ }
if ( searchControls.getReturningAttributes() != null )
{
@@ -143,7 +155,11 @@ public class SearchOperationContext exte
super( session, dn, returningAttributes );
super.setScope( scope );
this.filter = filter;
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.SEARCH ) );
+ }
}
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/UnbindOperationContext.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/UnbindOperationContext.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/UnbindOperationContext.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/UnbindOperationContext.java Thu Dec 1 13:25:26 2011
@@ -6,16 +6,16 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
- *
+ * under the License.
+ *
*/
package org.apache.directory.server.core.api.interceptor.context;
@@ -40,7 +40,11 @@ public class UnbindOperationContext exte
public UnbindOperationContext( CoreSession session )
{
super( session, session.getEffectivePrincipal().getDn() );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.UNBIND ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.UNBIND ) );
+ }
}
@@ -48,7 +52,11 @@ public class UnbindOperationContext exte
{
super( session, session.getEffectivePrincipal().getDn() );
setRequestControls( unbindRequest.getControls() );
- setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.UNBIND ) );
+
+ if ( session != null )
+ {
+ setInterceptors( session.getDirectoryService().getInterceptors( OperationEnum.UNBIND ) );
+ }
}
Modified: directory/apacheds/branches/apacheds-txns/core-api/src/test/java/org/apache/directory/server/core/api/MockOperation.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-api/src/test/java/org/apache/directory/server/core/api/MockOperation.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-api/src/test/java/org/apache/directory/server/core/api/MockOperation.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-api/src/test/java/org/apache/directory/server/core/api/MockOperation.java Thu Dec 1 13:25:26 2011
@@ -19,7 +19,6 @@
*/
package org.apache.directory.server.core.api;
-import java.util.Collection;
import java.util.List;
import org.apache.directory.server.core.api.CoreSession;
@@ -32,7 +31,6 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.context.SearchOperationContext;
import org.apache.directory.shared.ldap.model.constants.AuthenticationLevel;
import org.apache.directory.shared.ldap.model.entry.Entry;
-import org.apache.directory.shared.ldap.model.entry.Modification;
import org.apache.directory.shared.ldap.model.exception.LdapException;
import org.apache.directory.shared.ldap.model.message.Control;
import org.apache.directory.shared.ldap.model.name.Dn;
@@ -52,14 +50,7 @@ public class MockOperation implements Op
}
- public EntryFilteringCursor search( SearchOperationContext searchContext )
- throws LdapException
- {
- return new BaseEntryFilteringCursor( new MockCursor( count ), searchContext );
- }
-
-
- public EntryFilteringCursor search( SearchOperationContext searchContext, Collection<String> bypass ) throws LdapException
+ public EntryFilteringCursor search( SearchOperationContext searchContext ) throws LdapException
{
return new BaseEntryFilteringCursor( new MockCursor( count ), searchContext );
}
@@ -80,12 +71,6 @@ public class MockOperation implements Op
}
- public Collection<String> getByPassed()
- {
- return null;
- }
-
-
public Dn getDn()
{
return null;
@@ -128,12 +113,6 @@ public class MockOperation implements Op
}
- public boolean hasBypass()
- {
- return false;
- }
-
-
public boolean hasRequestControl( String numericOid )
{
return false;
@@ -158,52 +137,18 @@ public class MockOperation implements Op
}
- public boolean isBypassed( String interceptorName )
- {
- return false;
- }
-
-
- public boolean isCollateralOperation()
- {
- return false;
- }
-
-
- public Entry lookup( Dn dn, Collection<String> bypass ) throws LdapException
- {
- return null;
- }
-
-
public Entry lookup( LookupOperationContext lookupContext ) throws LdapException
{
return null;
}
- public Entry lookup( Dn dn, Collection<String> byPass, String... attrIds ) throws LdapException
- {
- return null;
- }
-
-
public LookupOperationContext newLookupContext( Dn dn )
{
return null;
}
- public void setByPassed( Collection<String> byPassed )
- {
- }
-
-
- public void setCollateralOperation( boolean collateralOperation )
- {
- }
-
-
public void setDn( Dn dn )
{
}
@@ -215,57 +160,11 @@ public class MockOperation implements Op
}
- public OperationContext getFirstOperation()
- {
- return null;
- }
-
-
- public OperationContext getLastOperation()
- {
- return null;
- }
-
-
- public OperationContext getNextOperation()
- {
- return null;
- }
-
-
- public OperationContext getPreviousOperation()
- {
- return null;
- }
-
-
- public boolean isFirstOperation()
- {
- return false;
- }
-
-
- public void add( Entry entry, Collection<String> bypass ) throws LdapException
- {
- }
-
-
public void delete( Dn dn ) throws LdapException
{
}
- public void modify( Dn dn, List<Modification> mods, Collection<String> bypass ) throws LdapException
- {
- }
-
-
- public boolean hasEntry( Dn dn, Collection<String> byPass ) throws LdapException
- {
- return false;
- }
-
-
public ReferralHandlingMode getReferralHandlingMode()
{
return null;
@@ -313,15 +212,25 @@ public class MockOperation implements Op
@Override
public void setInterceptors( List<String> interceptors )
{
- // TODO Auto-generated method stub
-
}
@Override
public String getNextInterceptor()
{
- // TODO Auto-generated method stub
return "";
}
+
+
+ @Override
+ public int getCurrentInterceptor()
+ {
+ return 0;
+ }
+
+
+ @Override
+ public void setCurrentInterceptor( int currentInterceptor )
+ {
+ }
}
Propchange: directory/apacheds/branches/apacheds-txns/core-integ/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 1 13:25:26 2011
@@ -5,6 +5,6 @@
/directory/apacheds/branches/apacheds-kerberos-codec-2.0/core-integ:1040956-1043765
/directory/apacheds/branches/apacheds-osgi/core-integ:1185681-1199322
/directory/apacheds/branches/milestones/core-integ:1072812-1075328
-/directory/apacheds/trunk/core-integ:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1201283
+/directory/apacheds/trunk/core-integ:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1209047
/directory/apacheds/trunk/interceptors/core-integ:1183435-1186974
/directory/studio/trunk/core-integ:1067786-1067997
Modified: directory/apacheds/branches/apacheds-txns/core-integ/src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-integ/src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-integ/src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-integ/src/main/java/org/apache/directory/server/core/integ/IntegrationUtils.java Thu Dec 1 13:25:26 2011
@@ -25,9 +25,6 @@ import java.util.ArrayList;
import java.util.List;
import javax.naming.NamingException;
-import javax.naming.directory.BasicAttribute;
-import javax.naming.directory.DirContext;
-import javax.naming.directory.ModificationItem;
import javax.naming.ldap.LdapContext;
import javax.naming.ldap.LdapName;
@@ -48,6 +45,9 @@ import org.apache.directory.shared.ldap.
import org.apache.directory.shared.ldap.model.entry.Attribute;
import org.apache.directory.shared.ldap.model.entry.DefaultAttribute;
import org.apache.directory.shared.ldap.model.entry.DefaultEntry;
+import org.apache.directory.shared.ldap.model.entry.DefaultModification;
+import org.apache.directory.shared.ldap.model.entry.Modification;
+import org.apache.directory.shared.ldap.model.entry.ModificationOperation;
import org.apache.directory.shared.ldap.model.exception.LdapException;
import org.apache.directory.shared.ldap.model.ldif.ChangeType;
import org.apache.directory.shared.ldap.model.ldif.LdifEntry;
@@ -301,25 +301,24 @@ public class IntegrationUtils
public static void enableSchema( DirectoryService service, String schemaName ) throws Exception
{
- LdapContext schemaRoot = getSchemaContext( service );
+ LdapConnection connection = getAdminConnection( service );
// now enable the test schema
- ModificationItem[] mods = new ModificationItem[1];
- javax.naming.directory.Attribute attr = new BasicAttribute( "m-disabled", "FALSE" );
- mods[0] = new ModificationItem( DirContext.REPLACE_ATTRIBUTE, attr );
- schemaRoot.modifyAttributes( "cn=" + schemaName, mods );
+ connection.modify( "cn=" + schemaName + ",ou=schema",
+ new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, "m-disabled", "FALSE" ) );
}
public static void disableSchema( DirectoryService service, String schemaName ) throws Exception
{
- LdapContext schemaRoot = getSchemaContext( service );
+ LdapConnection connection = getAdminConnection( service );
// now enable the test schema
- ModificationItem[] mods = new ModificationItem[1];
- javax.naming.directory.Attribute attr = new BasicAttribute( "m-disabled", "TRUE" );
- mods[0] = new ModificationItem( DirContext.REPLACE_ATTRIBUTE, attr );
- schemaRoot.modifyAttributes( "cn=" + schemaName, mods );
+ Modification mod = new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE, "m-disabled", "TRUE" );
+
+ connection.modify( "cn=" + schemaName + ",ou=schema", mod );
}
Modified: directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/authn/ppolicy/PasswordPolicyTest.java Thu Dec 1 13:25:26 2011
@@ -502,6 +502,52 @@ public class PasswordPolicyTest extends
}
+ @Test
+ public void testModifyPwdSubentry() throws Exception
+ {
+ LdapConnection connection = getAdminNetworkConnection( getLdapServer() );
+
+ Dn userDn = new Dn( "cn=ppolicySubentry,ou=system" );
+ String password = "12345";
+ Entry userEntry = new DefaultEntry(
+ userDn.toString(),
+ "ObjectClass: top",
+ "ObjectClass: person",
+ "cn: ppolicySubentry",
+ "sn: ppolicySubentry_sn",
+ "userPassword: " + password,
+ "pwdPolicySubEntry:" + userDn.getName() );
+
+ AddRequest addRequest = new AddRequestImpl();
+ addRequest.setEntry( userEntry );
+ addRequest.addControl( PP_REQ_CTRL );
+
+ AddResponse addResp = connection.add( addRequest );
+ assertEquals( ResultCodeEnum.SUCCESS, addResp.getLdapResult().getResultCode() );
+
+ userEntry = connection.lookup( userDn, "*", "+" );
+ assertEquals( userDn.getName(), userEntry.get( "pwdPolicySubEntry" ).getString() );
+
+ ModifyRequest modReq = new ModifyRequestImpl();
+ modReq.setName( userDn );
+ String modSubEntryDn = "cn=policy,ou=system";
+ modReq.replace( "pwdPolicySubEntry", modSubEntryDn );
+ ModifyResponse modResp = connection.modify( modReq );
+ assertEquals( ResultCodeEnum.SUCCESS, modResp.getLdapResult().getResultCode() );
+
+ userEntry = connection.lookup( userDn, "*", "+" );
+ assertEquals( modSubEntryDn, userEntry.get( "pwdPolicySubEntry" ).getString() );
+
+ // try to modify the subentry as a non-admin
+ connection = new LdapNetworkConnection( "localhost", getLdapServer().getPort() );
+ connection.bind( userDn.getName(), password );
+
+ modResp = connection.modify( modReq );
+ modReq.replace( "pwdPolicySubEntry", userDn.getName() );
+ assertEquals( ResultCodeEnum.INSUFFICIENT_ACCESS_RIGHTS, modResp.getLdapResult().getResultCode() );
+ }
+
+
private PasswordPolicy getPwdRespCtrl( Response resp ) throws Exception
{
Control control = resp.getControls().get( PP_REQ_CTRL.getOid() );
Propchange: directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 1 13:25:26 2011
@@ -10,6 +10,6 @@
/directory/apacheds/branches/bigbang/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java:599654-600228
/directory/apacheds/branches/milestones/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java:1072812-1075328
/directory/apacheds/branches/xdbm-refactoring/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java:945827-946347
-/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1201283
+/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java:1066126-1067785,1068026-1072718,1072800-1075329,1177661-1209047
/directory/apacheds/trunk/interceptors/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java:1183435-1186974
/directory/studio/trunk/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java:1067786-1067997
Modified: directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/AbstractMetaSchemaObjectHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/AbstractMetaSchemaObjectHandler.java?rev=1209069&r1=1209068&r2=1209069&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/AbstractMetaSchemaObjectHandler.java (original)
+++ directory/apacheds/branches/apacheds-txns/core-integ/src/test/java/org/apache/directory/server/core/schema/AbstractMetaSchemaObjectHandler.java Thu Dec 1 13:25:26 2011
@@ -37,7 +37,7 @@ public abstract class AbstractMetaSchema
protected static String workingDir;
@Before
- public final void init()
+ public void init() throws Exception
{
workingDir = getService().getInstanceLayout().getPartitionsDirectory().getAbsolutePath();
}
@@ -52,7 +52,7 @@ public abstract class AbstractMetaSchema
{
StringBuilder sb = new StringBuilder();
- sb.append( workingDir ).append( '/' ).append( getService().getSchemaPartition().getId() ).append( '/' ).append( "ou=schema" );
+ sb.append( workingDir ).append( '/' ).append( getService().getSchemaPartition().getId() );
for ( Rdn rdn : dn )
{
@@ -74,7 +74,7 @@ public abstract class AbstractMetaSchema
*/
protected boolean isOnDisk( Dn dn )
{
- // donot change the value of getSchemaPath to lowercase
+ // do not change the value of getSchemaPath to lowercase
// on Linux this gives a wrong path
String schemaObjectFileName = getSchemaPath( dn );
@@ -95,96 +95,4 @@ public abstract class AbstractMetaSchema
{
return new Dn( "cn=" + schemaName );
}
-
-
- /**
- * Gets relative Dn to ou=schema.
- *
- * @param schemaName the name of the schema
- * @return the dn of the a schema's attributeType entity container
- * @throws Exception on failure
- */
- protected Dn getAttributeTypeContainer( String schemaName ) throws Exception
- {
- return new Dn( "ou=attributeTypes,cn=" + schemaName );
- }
-
-
- /**
- * Get relative Dn to ou=schema for Comparators
- *
- * @param schemaName the name of the schema
- * @return the dn to the ou under which comparators are found for a schema
- * @throws Exception if there are dn construction issues
- */
- protected Dn getComparatorContainer( String schemaName ) throws Exception
- {
- return new Dn( "ou=comparators,cn=" + schemaName );
- }
-
-
- /**
- * Get relative Dn to ou=schema for MatchingRules
- *
- * @param schemaName the name of the schema
- * @return the dn to the ou under which MatchingRules are found for a schema
- * @throws Exception if there are dn construction issues
- */
- protected Dn getMatchingRuleContainer( String schemaName ) throws Exception
- {
- return new Dn( "ou=matchingRules,cn=" + schemaName );
- }
-
-
- /**
- * Gets relative Dn to ou=schema.
- *
- * @param schemaName the name of the schema
- * @return the dn of the container which contains objectClasses
- * @throws Exception on error
- */
- protected Dn getObjectClassContainer( String schemaName ) throws Exception
- {
- return new Dn( "ou=objectClasses,cn=" + schemaName );
- }
-
-
-
- /**
- * Gets relative Dn to ou=schema.
- *
- * @param schemaName the name of the schema
- * @return the name of the container with normalizer entries in it
- * @throws Exception on error
- */
- protected Dn getNormalizerContainer( String schemaName ) throws Exception
- {
- return new Dn( "ou=normalizers,cn=" + schemaName );
- }
-
-
- /**
- * Get relative Dn to ou=schema for Syntaxes
- *
- * @param schemaName the name of the schema
- * @return the dn of the container holding syntaxes for the schema
- * @throws Exception on dn parse errors
- */
- protected Dn getSyntaxContainer( String schemaName ) throws Exception
- {
- return new Dn( "ou=syntaxes,cn=" + schemaName );
- }
-
-
- /**
- * Get relative Dn to ou=schema for SyntaxCheckers
- *
- * @param schemaName the name of the schema
- * @return the dn of the container holding syntax checkers for the schema
- * @throws Exception on dn parse errors
- */
- protected Dn getSyntaxCheckerContainer( String schemaName ) throws Exception
- {
- return new Dn( "ou=syntaxCheckers,cn=" + schemaName );
- }
}