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/11/04 16:25:41 UTC
svn commit: r1197596 - in /directory/apacheds/trunk: core-api/
core-api/src/main/java/org/apache/directory/server/core/api/partition/
core-api/src/main/java/org/apache/directory/server/core/api/schema/
interceptor-kerberos/ interceptor-kerberos/src/mai...
Author: elecharny
Date: Fri Nov 4 15:25:40 2011
New Revision: 1197596
URL: http://svn.apache.org/viewvc?rev=1197596&view=rev
Log:
Merged back the osgi modifications relative to Bypasses to trunk
Modified:
directory/apacheds/trunk/core-api/ (props changed)
directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/ByPassConstants.java
directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/schema/SchemaPartition.java
directory/apacheds/trunk/interceptor-kerberos/ (props changed)
directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java
directory/apacheds/trunk/interceptors/authn/ (props changed)
directory/apacheds/trunk/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java
directory/apacheds/trunk/interceptors/authz/ (props changed)
directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java
directory/apacheds/trunk/interceptors/changelog/ (props changed)
directory/apacheds/trunk/interceptors/changelog/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java
directory/apacheds/trunk/interceptors/event/ (props changed)
directory/apacheds/trunk/interceptors/event/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java
directory/apacheds/trunk/interceptors/exception/ (props changed)
directory/apacheds/trunk/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
directory/apacheds/trunk/interceptors/subtree/ (props changed)
directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
directory/apacheds/trunk/interceptors/trigger/ (props changed)
directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java
directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java
directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java
directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
Propchange: directory/apacheds/trunk/core-api/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -3,6 +3,7 @@
/directory/apacheds/branches/apacheds-dnfactory-experiment/core-api:980138-980934
/directory/apacheds/branches/apacheds-jdbm/core-api:1160768-1164073
/directory/apacheds/branches/apacheds-kerberos-codec-2.0/core-api:1040956-1043765
+/directory/apacheds/branches/apacheds-osgi/core-api:1185681-1197579
/directory/apacheds/branches/milestones/core-api:1072812-1075328
/directory/apacheds/trunk/core-api:1066126-1067785,1068026-1072718,1072800-1075329
/directory/studio/trunk/core-api:1067786-1067997
Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/ByPassConstants.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/ByPassConstants.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/ByPassConstants.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/partition/ByPassConstants.java Fri Nov 4 15:25:40 2011
@@ -36,11 +36,6 @@ import org.apache.directory.server.core.
public class ByPassConstants
{
/**
- * safe to use set of bypass instructions to lookup raw entries
- */
- public final static Collection<String> LOOKUP_BYPASS;
-
- /**
* safe to use set of bypass instructions to lookup raw entries while
* also avoiding hit on collective attributes {@link Interceptor}: used
* by collective attributes interceptor.
@@ -48,23 +43,6 @@ public class ByPassConstants
public static final Collection<String> LOOKUP_COLLECTIVE_BYPASS;
/**
- * bypass instructions used by ExceptionInterceptor
- */
- public final static Collection<String> HAS_ENTRY_BYPASS;
-
- /**
- * safe to use set of bypass instructions to getMatchedDn
- */
- public static final Collection<String> GETMATCHEDDN_BYPASS;
-
- /**
- * safe to use set of bypass instructions to lookup raw entries excluding operational attributes
- */
- public static final Collection<String> LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS;
-
- public static final Collection<String> GET_ROOT_DSE_BYPASS;
-
- /**
* Bypass String to use when ALL interceptors should be skipped
*/
public static final String BYPASS_ALL = "*";
@@ -74,9 +52,6 @@ public class ByPassConstants
*/
public static final Collection<String> BYPASS_ALL_COLLECTION = Collections.singleton( BYPASS_ALL );
- /** Bypass for when we modify schema attributes */
- public static final Collection<String> SCHEMA_MODIFICATION_ATTRIBUTES_UPDATE_BYPASS;
-
static
{
Collection<String> c = new HashSet<String>();
@@ -84,34 +59,6 @@ public class ByPassConstants
c.add( "AuthenticationInterceptor" );
c.add( "AciAuthorizationInterceptor" );
c.add( "DefaultAuthorizationInterceptor" );
- c.add( "ReferralInterceptor" );
- c.add( "ChangeLogInterceptor" );
- c.add( "OperationalAttributeInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "SubentryInterceptor" );
- c.add( "EventInterceptor" );
- c.add( "TriggerInterceptor" );
- c.add( "JournalInterceptor" );
- LOOKUP_BYPASS = Collections.unmodifiableCollection( c );
-
- c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "AuthenticationInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "ExceptionInterceptor" );
- c.add( "OperationalAttributeInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "SubentryInterceptor" );
- c.add( "EventInterceptor" );
- c.add( "JournalInterceptor" );
- HAS_ENTRY_BYPASS = Collections.unmodifiableCollection( c );
-
- c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "AuthenticationInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
c.add( "CollectiveAttributeInterceptor" );
c.add( "OperationalAttributeInterceptor" );
c.add( "SchemaInterceptor" );
@@ -119,54 +66,5 @@ public class ByPassConstants
c.add( "EventInterceptor" );
c.add( "JournalInterceptor" );
LOOKUP_COLLECTIVE_BYPASS = Collections.unmodifiableCollection( c );
-
- c = new HashSet<String>();
- c.add( "AuthenticationInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "OperationalAttributeInterceptor" );
- c.add( "SubentryInterceptor" );
- c.add( "EventInterceptor" );
- c.add( "JournalInterceptor" );
- GETMATCHEDDN_BYPASS = Collections.unmodifiableCollection( c );
-
- c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "AuthenticationInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "SubentryInterceptor" );
- c.add( "EventInterceptor" );
- c.add( "TriggerInterceptor" );
- c.add( "JournalInterceptor" );
- LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS = Collections.unmodifiableCollection( c );
-
- c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "ChangeLogInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "ExceptionInterceptor" );
- c.add( "OperationalAttributeInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "SubentryInterceptor" );
- c.add( "CollectiveAttributeInterceptor" );
- c.add( "EventInterceptor" );
- c.add( "TriggerInterceptor" );
- c.add( "JournalInterceptor" );
- GET_ROOT_DSE_BYPASS = Collections.unmodifiableCollection( c );
-
-
- c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "ExceptionInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "CollectiveAttributeInterceptor" );
- c.add( "JournalInterceptor" );
- SCHEMA_MODIFICATION_ATTRIBUTES_UPDATE_BYPASS = Collections.unmodifiableCollection( c );
}
}
Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/schema/SchemaPartition.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/schema/SchemaPartition.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/schema/SchemaPartition.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/api/schema/SchemaPartition.java Fri Nov 4 15:25:40 2011
@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.directory.server.constants.ApacheSchemaConstants;
+import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.filtering.EntryFilteringCursor;
import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
import org.apache.directory.server.core.api.interceptor.context.BindOperationContext;
@@ -39,7 +40,6 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.context.SearchOperationContext;
import org.apache.directory.server.core.api.interceptor.context.UnbindOperationContext;
import org.apache.directory.server.core.api.partition.AbstractPartition;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.server.core.api.partition.Partition;
import org.apache.directory.server.core.api.schema.registries.synchronizers.RegistrySynchronizerAdaptor;
import org.apache.directory.server.i18n.I18n;
@@ -335,6 +335,7 @@ public final class SchemaPartition exten
{
LookupOperationContext lookupCtx = new LookupOperationContext( modifyContext.getSession(), modifyContext.getDn() );
entry = wrapped.lookup( lookupCtx );
+ modifyContext.setEntry( entry );
}
Entry targetEntry = ( Entry ) SchemaUtils.getTargetEntry( modifyContext.getModItems(), entry );
@@ -361,7 +362,10 @@ public final class SchemaPartition exten
public void move( MoveOperationContext moveContext ) throws LdapException
{
boolean cascade = moveContext.hasRequestControl( Cascade.OID );
- Entry entry = moveContext.lookup( moveContext.getDn(), ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ CoreSession session = moveContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, moveContext.getDn(), SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ Entry entry = session.getDirectoryService().getPartitionNexus().lookup( lookupContext );
synchronizer.move( moveContext, entry, cascade );
wrapped.move( moveContext );
updateSchemaModificationAttributes( moveContext );
@@ -374,7 +378,9 @@ public final class SchemaPartition exten
public void moveAndRename( MoveAndRenameOperationContext moveAndRenameContext ) throws LdapException
{
boolean cascade = moveAndRenameContext.hasRequestControl( Cascade.OID );
- Entry entry = moveAndRenameContext.lookup( moveAndRenameContext.getDn(), ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = moveAndRenameContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, moveAndRenameContext.getDn(), SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ Entry entry = session.getDirectoryService().getPartitionNexus().lookup( lookupContext );
synchronizer.moveAndRename( moveAndRenameContext, entry, cascade );
wrapped.moveAndRename( moveAndRenameContext );
updateSchemaModificationAttributes( moveAndRenameContext );
@@ -452,7 +458,12 @@ public final class SchemaPartition exten
ApacheSchemaConstants.SCHEMA_MODIFIERS_NAME_AT, schemaManager
.lookupAttributeTypeRegistry( ApacheSchemaConstants.SCHEMA_MODIFIERS_NAME_AT ), modifiersName ) ) );
- opContext.modify( SCHEMA_MODIFICATION_DN, mods, ByPassConstants.SCHEMA_MODIFICATION_ATTRIBUTES_UPDATE_BYPASS );
+ // operation reached this level means all the necessary ACI and other checks should
+ // have been done, so we can perform the below modification directly on the partition nexus
+ // without using a a bypass list
+ CoreSession session = opContext.getSession();
+ ModifyOperationContext modifyContext = new ModifyOperationContext( session, SCHEMA_MODIFICATION_DN, mods );
+ session.getDirectoryService().getPartitionNexus().modify( modifyContext );
}
Propchange: directory/apacheds/trunk/interceptor-kerberos/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -2,6 +2,7 @@
/directory/apacheds/branches/apacheds-config/interceptor-kerberos:1023442-1029077
/directory/apacheds/branches/apacheds-dnfactory-experiment/interceptor-kerberos:980138-980935
/directory/apacheds/branches/apacheds-kerberos-codec-2.0/interceptor-kerberos:1040956-1043765
+/directory/apacheds/branches/apacheds-osgi/interceptor-kerberos:1185681-1197579
/directory/apacheds/branches/milestones/interceptor-kerberos:1072812-1075328
/directory/apacheds/trunk/interceptor-kerberos:1066126-1067785,1068026-1072718,1072800-1075329
/directory/studio/trunk/interceptor-kerberos:1067786-1067997
Modified: directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java (original)
+++ directory/apacheds/trunk/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java Fri Nov 4 15:25:40 2011
@@ -22,12 +22,8 @@ package org.apache.directory.server.core
import java.nio.ByteBuffer;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.apache.directory.server.core.api.entry.ClonedServerEntry;
import org.apache.directory.server.core.api.interceptor.BaseInterceptor;
@@ -80,30 +76,6 @@ public class KeyDerivationInterceptor ex
public static final String NAME = "keyDerivationService";
/**
- * Define the interceptors to bypass upon user lookup.
- */
- private static final Collection<String> USERLOOKUP_BYPASS;
- static
- {
- Set<String> c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "AuthenticationInterceptor" );
- c.add( "ReferralInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "AdministrativePointInterceptor" );
- c.add( "ExceptionInterceptor" );
- c.add( "OperationalAttributeInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "CollectiveAttributeInterceptor" );
- c.add( "SubentryInterceptor" );
- c.add( "EventInterceptor" );
- c.add( "TriggerInterceptor" );
- USERLOOKUP_BYPASS = Collections.unmodifiableCollection( c );
- }
-
-
- /**
* Intercept the addition of the 'userPassword' and 'krb5PrincipalName' attributes. Use the 'userPassword'
* and 'krb5PrincipalName' attributes to derive Kerberos keys for the principal. If the 'userPassword' is
* the special keyword 'randomKey', set random keys for the principal. Set the key version number (kvno)
@@ -272,7 +244,6 @@ public class KeyDerivationInterceptor ex
Dn principalDn = modContext.getDn();
LookupOperationContext lookupContext = modContext.newLookupContext( principalDn );
- lookupContext.setByPassed( USERLOOKUP_BYPASS );
lookupContext.setAttrsId( new String[]
{
SchemaConstants.OBJECT_CLASS_AT,
@@ -280,7 +251,7 @@ public class KeyDerivationInterceptor ex
KerberosAttribute.KRB5_KEY_VERSION_NUMBER_AT
} );
- Entry userEntry = modContext.lookup( lookupContext );
+ Entry userEntry = directoryService.getPartitionNexus().lookup( lookupContext );
if ( userEntry == null )
{
Propchange: directory/apacheds/trunk/interceptors/authn/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -0,0 +1 @@
+/directory/apacheds/branches/apacheds-osgi/interceptors/authn:1185681-1197579
Modified: directory/apacheds/trunk/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java (original)
+++ directory/apacheds/trunk/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java Fri Nov 4 15:25:40 2011
@@ -91,31 +91,6 @@ public class SimpleAuthenticator extends
private static final int DEFAULT_CACHE_SIZE = 100;
/**
- * Define the interceptors we should *not* go through when we will have to request the backend
- * about a userPassword.
- */
- private static final Collection<String> USERLOOKUP_BYPASS;
-
- static
- {
- Set<String> c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "AuthenticationInterceptor" );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "AdministrativePointInterceptor" );
- c.add( "ExceptionInterceptor" );
- c.add( "OperationalAttributeInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "CollectiveAttributeInterceptor" );
- c.add( "SubentryInterceptor" );
- c.add( "EventInterceptor" );
- c.add( "TriggerInterceptor" );
- USERLOOKUP_BYPASS = Collections.unmodifiableCollection( c );
- }
-
-
- /**
* Creates a new instance.
* @see AbstractAuthenticator
*/
@@ -265,12 +240,11 @@ public class SimpleAuthenticator extends
*/
LookupOperationContext lookupContext = new LookupOperationContext( getDirectoryService().getAdminSession(),
bindContext.getDn() );
- lookupContext.setByPassed( USERLOOKUP_BYPASS );
lookupContext.addAttrsId( SchemaConstants.ALL_USER_ATTRIBUTES );
// OP attributes required for ppolicy
lookupContext.addAttrsId( SchemaConstants.ALL_OPERATIONAL_ATTRIBUTES );
- userEntry = getDirectoryService().getOperationManager().lookup( lookupContext );
+ userEntry = getDirectoryService().getPartitionNexus().lookup( lookupContext );
if ( userEntry == null )
{
Propchange: directory/apacheds/trunk/interceptors/authz/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -0,0 +1 @@
+/directory/apacheds/branches/apacheds-osgi/interceptors/authz:1185681-1197579
Modified: directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java Fri Nov 4 15:25:40 2011
@@ -39,7 +39,6 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.filtering.EntryFilter;
import org.apache.directory.server.core.api.filtering.EntryFilteringCursor;
import org.apache.directory.server.core.api.interceptor.BaseInterceptor;
-import org.apache.directory.server.core.api.interceptor.InterceptorChain;
import org.apache.directory.server.core.api.interceptor.NextInterceptor;
import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
import org.apache.directory.server.core.api.interceptor.context.CompareOperationContext;
@@ -54,7 +53,6 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.context.RenameOperationContext;
import org.apache.directory.server.core.api.interceptor.context.SearchOperationContext;
import org.apache.directory.server.core.api.interceptor.context.SearchingOperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.server.core.api.partition.PartitionNexus;
import org.apache.directory.server.core.api.subtree.SubentryUtils;
import org.apache.directory.server.core.authz.support.ACDFEngine;
@@ -160,9 +158,6 @@ public class AciAuthorizationInterceptor
/** use and instance of the ACDF engine */
private ACDFEngine engine;
- /** interceptor chain */
- private InterceptorChain chain;
-
/** the system wide subschemaSubentryDn */
private String subschemaSubentryDn;
@@ -283,7 +278,6 @@ public class AciAuthorizationInterceptor
Dn adminDn = directoryService.getDnFactory().create( ServerDNConstants.ADMIN_SYSTEM_DN );
CoreSession adminSession = new DefaultCoreSession( new LdapPrincipal( schemaManager, adminDn, AuthenticationLevel.STRONG ),
directoryService );
- chain = directoryService.getInterceptorChain();
// Create the caches
tupleCache = new TupleCache( adminSession );
@@ -370,7 +364,11 @@ public class AciAuthorizationInterceptor
if ( oc.contains( SchemaConstants.SUBENTRY_OC ) )
{
Dn parentDn = dn.getParent();
- originalEntry = opContext.lookup( parentDn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, parentDn );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ originalEntry = directoryService.getPartitionNexus().lookup( lookupContext );
}
Attribute subentries = originalEntry.get( ACCESS_CONTROL_SUBENTRIES_AT );
@@ -448,7 +446,11 @@ public class AciAuthorizationInterceptor
// get the parent or administrative entry for this subentry since it
// will contain the subentryACI attributes that effect subentries
Dn parentDn = dn.getParent();
- Entry administrativeEntry = ( ( ClonedServerEntry ) opContext.lookup( parentDn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY ) )
+
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, parentDn, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ Entry administrativeEntry = (( ClonedServerEntry ) directoryService.getPartitionNexus().lookup( lookupContext ) )
.getOriginalEntry();
Attribute subentryAci = administrativeEntry.get( SUBENTRY_ACI_AT );
@@ -503,7 +505,7 @@ public class AciAuthorizationInterceptor
public void add( NextInterceptor next, AddOperationContext addContext ) throws LdapException
{
// bypass authz code if it was disabled
- if ( !addContext.getSession().getDirectoryService().isAccessControlEnabled() )
+ if ( !directoryService.isAccessControlEnabled() )
{
ACI_LOG.debug( "ACI interceptor disabled" );
next.add( addContext );
@@ -601,7 +603,7 @@ public class AciAuthorizationInterceptor
CoreSession session = deleteContext.getSession();
// bypass authz code if we are disabled
- if ( !session.getDirectoryService().isAccessControlEnabled() )
+ if ( !directoryService.isAccessControlEnabled() )
{
next.delete( deleteContext );
return;
@@ -663,7 +665,7 @@ public class AciAuthorizationInterceptor
Dn principalDn = principal.getDn();
// bypass authz code if we are disabled
- if ( !modifyContext.getSession().getDirectoryService().isAccessControlEnabled() )
+ if ( !directoryService.isAccessControlEnabled() )
{
next.modify( modifyContext );
return;
@@ -679,9 +681,12 @@ public class AciAuthorizationInterceptor
/**
* @TODO: A virtual entry can be created here for not hitting the backend again.
*/
- Entry modifiedEntry = modifyContext.lookup( dn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = modifyContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, dn, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ Entry modifiedEntry = directoryService.getPartitionNexus().lookup( lookupContext );
tupleCache.subentryModified( dn, mods, modifiedEntry );
groupCache.groupModified( dn, mods, entry, schemaManager );
+
return;
}
@@ -801,7 +806,10 @@ public class AciAuthorizationInterceptor
/**
* @TODO: A virtual entry can be created here for not hitting the backend again.
*/
- Entry modifiedEntry = modifyContext.lookup( dn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = modifyContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, dn, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ Entry modifiedEntry = directoryService.getPartitionNexus().lookup( lookupContext );
tupleCache.subentryModified( dn, mods, modifiedEntry );
groupCache.groupModified( dn, mods, entry, schemaManager );
}
@@ -811,7 +819,7 @@ public class AciAuthorizationInterceptor
{
Dn dn = hasEntryContext.getDn();
- if ( !hasEntryContext.getSession().getDirectoryService().isAccessControlEnabled() )
+ if ( !directoryService.isAccessControlEnabled() )
{
return ( dn.isRootDSE() || next.hasEntry( hasEntryContext ) );
}
@@ -825,9 +833,11 @@ public class AciAuthorizationInterceptor
// It's the rootDSE, and it exists !
return answer;
}
+
+ CoreSession session = hasEntryContext.getSession();
// TODO - eventually replace this with a check on session.isAnAdministrator()
- LdapPrincipal principal = hasEntryContext.getSession().getEffectivePrincipal();
+ LdapPrincipal principal = session.getEffectivePrincipal();
Dn principalDn = principal.getDn();
if ( isPrincipalAnAdministrator( principalDn ) )
@@ -835,7 +845,9 @@ public class AciAuthorizationInterceptor
return answer;
}
- Entry entry = hasEntryContext.lookup( dn, ByPassConstants.HAS_ENTRY_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ LookupOperationContext lookupContext = new LookupOperationContext( session, dn, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ Entry entry = directoryService.getPartitionNexus().lookup( lookupContext );
+
Set<Dn> userGroups = groupCache.getGroups( principalDn.getNormName() );
Collection<ACITuple> tuples = new HashSet<ACITuple>();
addPerscriptiveAciTuples( hasEntryContext, tuples, dn, entry );
@@ -932,7 +944,6 @@ public class AciAuthorizationInterceptor
public Entry lookup( NextInterceptor next, LookupOperationContext lookupContext ) throws LdapException
{
CoreSession session = lookupContext.getSession();
- DirectoryService directoryService = session.getDirectoryService();
LdapPrincipal principal = session.getEffectivePrincipal();
Dn principalDn = principal.getDn();
@@ -948,8 +959,7 @@ public class AciAuthorizationInterceptor
return next.lookup( lookupContext );
}
- lookupContext.setByPassed( ByPassConstants.LOOKUP_BYPASS );
- Entry entry = directoryService.getOperationManager().lookup( lookupContext );
+ Entry entry = directoryService.getPartitionNexus().lookup( lookupContext );
checkLookupAccess( lookupContext, entry );
@@ -972,7 +982,7 @@ public class AciAuthorizationInterceptor
Dn newName = renameContext.getNewDn();
// bypass authz code if we are disabled
- if ( !renameContext.getSession().getDirectoryService().isAccessControlEnabled() )
+ if ( !directoryService.isAccessControlEnabled() )
{
next.rename( renameContext );
return;
@@ -1027,7 +1037,7 @@ public class AciAuthorizationInterceptor
Dn newDn = moveAndRenameContext.getNewDn();
// bypass authz code if we are disabled
- if ( !moveAndRenameContext.getSession().getDirectoryService().isAccessControlEnabled() )
+ if ( !directoryService.isAccessControlEnabled() )
{
next.moveAndRename( moveAndRenameContext );
return;
@@ -1041,6 +1051,7 @@ public class AciAuthorizationInterceptor
next.moveAndRename( moveAndRenameContext );
tupleCache.subentryRenamed( oldDn, newDn );
groupCache.groupRenamed( oldDn, newDn );
+
return;
}
@@ -1067,8 +1078,9 @@ public class AciAuthorizationInterceptor
// This will certainly be fixed by the SubentryInterceptor,
// but after this service.
- Entry importedEntry = moveAndRenameContext.lookup( oldDn,
- ByPassConstants.LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = moveAndRenameContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, oldDn, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+ Entry importedEntry = directoryService.getPartitionNexus().lookup( lookupContext );
// As the target entry does not exist yet and so
// its subentry operational attributes are not there,
@@ -1114,14 +1126,15 @@ public class AciAuthorizationInterceptor
// Access the principal requesting the operation, and bypass checks if it is the admin
Entry entry = moveContext.getOriginalEntry();
+ CoreSession session = moveContext.getSession();
Dn newDn = moveContext.getNewDn();
- LdapPrincipal principal = moveContext.getSession().getEffectivePrincipal();
+ LdapPrincipal principal = session.getEffectivePrincipal();
Dn principalDn = principal.getDn();
// bypass authz code if we are disabled
- if ( !moveContext.getSession().getDirectoryService().isAccessControlEnabled() )
+ if ( !directoryService.isAccessControlEnabled() )
{
next.move( moveContext );
return;
@@ -1160,7 +1173,8 @@ public class AciAuthorizationInterceptor
// will not be valid at the new location.
// This will certainly be fixed by the SubentryInterceptor,
// but after this service.
- Entry importedEntry = moveContext.lookup( oriChildName, ByPassConstants.LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ LookupOperationContext lookupContext = new LookupOperationContext( session, oriChildName, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+ Entry importedEntry = directoryService.getPartitionNexus().lookup( lookupContext );
// As the target entry does not exist yet and so
// its subentry operational attributes are not there,
@@ -1203,7 +1217,7 @@ public class AciAuthorizationInterceptor
EntryFilteringCursor cursor = next.list( listContext );
if ( isPrincipalAnAdministrator( user.getDn() )
- || !listContext.getSession().getDirectoryService().isAccessControlEnabled() )
+ || !directoryService.isAccessControlEnabled() )
{
return cursor;
}
@@ -1226,7 +1240,7 @@ public class AciAuthorizationInterceptor
&& searchCtls.getSearchScope() == SearchControls.OBJECT_SCOPE;
if ( isPrincipalAnAdministrator( principalDn )
- || !searchContext.getSession().getDirectoryService().isAccessControlEnabled() || isRootDSELookup
+ || !directoryService.isAccessControlEnabled() || isRootDSELookup
|| isSubschemaSubentryLookup )
{
return cursor;
@@ -1251,14 +1265,13 @@ public class AciAuthorizationInterceptor
CoreSession session = compareContext.getSession();
Dn dn = compareContext.getDn();
String oid = compareContext.getOid();
- Value<?> value = compareContext.getValue();
Entry entry = compareContext.getOriginalEntry();
LdapPrincipal principal = session.getEffectivePrincipal();
Dn principalDn = principal.getDn();
- if ( isPrincipalAnAdministrator( principalDn ) || !session.getDirectoryService().isAccessControlEnabled() )
+ if ( isPrincipalAnAdministrator( principalDn ) || !directoryService.isAccessControlEnabled() )
{
return next.compare( compareContext );
}
Modified: directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java (original)
+++ directory/apacheds/trunk/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java Fri Nov 4 15:25:40 2011
@@ -25,8 +25,10 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.event.Evaluator;
import org.apache.directory.server.core.api.event.ExpressionEvaluator;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.subtree.SubtreeEvaluator;
import org.apache.directory.server.core.api.subtree.RefinementEvaluator;
import org.apache.directory.server.core.api.subtree.RefinementLeafEvaluator;
@@ -107,27 +109,6 @@ public class ACDFEngine
}
}
- public static final Collection<String> USER_LOOKUP_BYPASS;
- static
- {
- Collection<String> c = new HashSet<String>();
- c.add( "NormalizationInterceptor" );
- c.add( "AuthenticationInterceptor" );
-// c.add( ReferralInterceptor.class.getName() );
- c.add( "AciAuthorizationInterceptor" );
- c.add( "DefaultAuthorizationInterceptor" );
- c.add( "AdministrativePointInterceptor" );
-// c.add( ExceptionInterceptor.class.getName() );
- c.add( "OperationalAttributeInterceptor" );
- c.add( "SchemaInterceptor" );
- c.add( "SubentryInterceptor" );
-// c.add( CollectiveAttributeInterceptor.class.getName() );
- c.add( "EventInterceptor" );
- c.add( "TriggerInterceptor" );
- USER_LOOKUP_BYPASS = Collections.unmodifiableCollection( c );
- }
-
-
/**
* Returns <tt>true</tt> if the user with the specified name can access the specified resource
* (entry, attribute type, or attribute value) and throws {@link org.apache.directory.shared.ldap.model.exception.LdapNoPermissionException}
@@ -143,7 +124,9 @@ public class ACDFEngine
throw new IllegalArgumentException( "entryName" );
}
- Entry userEntry = aciContext.getOperationContext().lookup( aciContext.getUserDn(), USER_LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = aciContext.getOperationContext().getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, aciContext.getUserDn(), SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ Entry userEntry = session.getDirectoryService().getPartitionNexus().lookup( lookupContext );
// Determine the scope of the requested operation.
OperationScope scope;
Propchange: directory/apacheds/trunk/interceptors/changelog/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -0,0 +1 @@
+/directory/apacheds/branches/apacheds-osgi/interceptors/changelog:1185681-1197579
Modified: directory/apacheds/trunk/interceptors/changelog/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/changelog/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/changelog/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/changelog/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java Fri Nov 4 15:25:40 2011
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.directory.server.constants.ApacheSchemaConstants;
import org.apache.directory.server.constants.ServerDNConstants;
+import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.DirectoryService;
import org.apache.directory.server.core.api.changelog.ChangeLog;
import org.apache.directory.server.core.api.entry.ClonedServerEntry;
@@ -32,12 +33,12 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.NextInterceptor;
import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
import org.apache.directory.server.core.api.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveAndRenameOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveOperationContext;
import org.apache.directory.server.core.api.interceptor.context.OperationContext;
import org.apache.directory.server.core.api.interceptor.context.RenameOperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.server.core.shared.SchemaService;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.entry.Attribute;
@@ -199,7 +200,10 @@ public class ChangeLogInterceptor extend
}
else
{
- serverEntry = opContext.lookup( dn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, dn );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ serverEntry = directoryService.getPartitionNexus().lookup( lookupContext );
}
return serverEntry;
Propchange: directory/apacheds/trunk/interceptors/event/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -0,0 +1 @@
+/directory/apacheds/branches/apacheds-osgi/interceptors/event:1185681-1197579
Modified: directory/apacheds/trunk/interceptors/event/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/event/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/event/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/event/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java Fri Nov 4 15:25:40 2011
@@ -28,6 +28,7 @@ import java.util.concurrent.ExecutorServ
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.DirectoryService;
import org.apache.directory.server.core.api.entry.ClonedServerEntry;
import org.apache.directory.server.core.api.event.DirectoryListener;
@@ -40,12 +41,12 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.NextInterceptor;
import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
import org.apache.directory.server.core.api.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveAndRenameOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveOperationContext;
import org.apache.directory.server.core.api.interceptor.context.OperationContext;
import org.apache.directory.server.core.api.interceptor.context.RenameOperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.entry.Entry;
import org.apache.directory.shared.ldap.model.exception.LdapException;
@@ -218,7 +219,11 @@ public class EventInterceptor extends Ba
}
// Get the modified entry
- Entry alteredEntry = modifyContext.lookup( modifyContext.getDn(), ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = modifyContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, modifyContext.getDn() );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ Entry alteredEntry = directoryService.getPartitionNexus().lookup( lookupContext );
modifyContext.setAlteredEntry( alteredEntry );
for ( final RegistrationEntry registration : selecting )
@@ -247,7 +252,11 @@ public class EventInterceptor extends Ba
}
// Get the modifed entry
- Entry alteredEntry = renameContext.lookup( renameContext.getNewDn(), ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = renameContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, renameContext.getNewDn() );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ Entry alteredEntry = directoryService.getPartitionNexus().lookup( lookupContext );
renameContext.setModifiedEntry( alteredEntry );
for ( final RegistrationEntry registration : selecting )
Propchange: directory/apacheds/trunk/interceptors/exception/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -0,0 +1 @@
+/directory/apacheds/branches/apacheds-osgi/interceptors/exception:1185681-1197579
Modified: directory/apacheds/trunk/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java Fri Nov 4 15:25:40 2011
@@ -21,7 +21,7 @@ package org.apache.directory.server.core
import org.apache.commons.collections.map.LRUMap;
-import org.apache.directory.server.core.shared.SchemaService;
+import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.DirectoryService;
import org.apache.directory.server.core.api.entry.ClonedServerEntry;
import org.apache.directory.server.core.api.filtering.BaseEntryFilteringCursor;
@@ -38,9 +38,9 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.context.MoveOperationContext;
import org.apache.directory.server.core.api.interceptor.context.OperationContext;
import org.apache.directory.server.core.api.interceptor.context.RenameOperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.server.core.api.partition.Partition;
import org.apache.directory.server.core.api.partition.PartitionNexus;
+import org.apache.directory.server.core.shared.SchemaService;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.cursor.EmptyCursor;
@@ -154,7 +154,11 @@ public class ExceptionInterceptor extend
try
{
- attrs = addContext.lookup( parentDn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = addContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, parentDn );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ attrs = directoryService.getPartitionNexus().lookup( lookupContext );
}
catch ( Exception e )
{
Propchange: directory/apacheds/trunk/interceptors/subtree/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -0,0 +1 @@
+/directory/apacheds/branches/apacheds-osgi/interceptors/subtree:1185681-1197580
Modified: directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java Fri Nov 4 15:25:40 2011
@@ -29,7 +29,6 @@ import javax.naming.directory.SearchCont
import org.apache.directory.server.constants.ApacheSchemaConstants;
import org.apache.directory.server.constants.ServerDNConstants;
-import org.apache.directory.server.core.shared.DefaultCoreSession;
import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.DirectoryService;
import org.apache.directory.server.core.api.LdapPrincipal;
@@ -41,6 +40,7 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
import org.apache.directory.server.core.api.interceptor.context.DeleteOperationContext;
import org.apache.directory.server.core.api.interceptor.context.ListOperationContext;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveAndRenameOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveOperationContext;
@@ -48,11 +48,11 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.context.RenameOperationContext;
import org.apache.directory.server.core.api.interceptor.context.SearchOperationContext;
import org.apache.directory.server.core.api.interceptor.context.SearchingOperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.server.core.api.partition.PartitionNexus;
import org.apache.directory.server.core.api.subtree.Subentry;
import org.apache.directory.server.core.api.subtree.SubentryCache;
import org.apache.directory.server.core.api.subtree.SubtreeEvaluator;
+import org.apache.directory.server.core.shared.DefaultCoreSession;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.shared.ldap.codec.controls.search.subentries.SubentriesDecorator;
import org.apache.directory.shared.ldap.model.constants.AuthenticationLevel;
@@ -412,7 +412,11 @@ public class SubentryInterceptor extends
*/
private void checkAdministrativeRole( OperationContext opContext, Dn apDn ) throws LdapException
{
- Entry administrationPoint = opContext.lookup( apDn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, apDn );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ Entry administrationPoint = directoryService.getPartitionNexus().lookup( lookupContext );
// The administrativeRole AT must exist and not be null
Attribute administrativeRole = administrationPoint.get( ADMINISTRATIVE_ROLE_AT );
Propchange: directory/apacheds/trunk/interceptors/trigger/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Nov 4 15:25:40 2011
@@ -0,0 +1 @@
+/directory/apacheds/branches/apacheds-osgi/interceptors/trigger:1185681-1197580
Modified: directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java (original)
+++ directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java Fri Nov 4 15:25:40 2011
@@ -27,8 +27,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.apache.directory.server.core.api.CoreSession;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.interceptor.context.OperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.exception.LdapException;
import org.apache.directory.shared.ldap.model.exception.LdapInvalidDnException;
@@ -111,7 +112,12 @@ public abstract class AbstractStoredProc
{
Generic_LDAP_CONTEXT ldapCtxParam = ( Generic_LDAP_CONTEXT ) param;
Dn ldapCtxName = ldapCtxParam.getCtxName();
- return opContext.lookup( ldapCtxName, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, ldapCtxName );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ return session.getDirectoryService().getPartitionNexus().lookup( lookupContext );
}
};
}
Modified: directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java (original)
+++ directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java Fri Nov 4 15:25:40 2011
@@ -22,8 +22,9 @@ package org.apache.directory.server.core
import java.util.Map;
+import org.apache.directory.server.core.api.CoreSession;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.interceptor.context.OperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.entry.Entry;
import org.apache.directory.shared.ldap.model.exception.LdapException;
@@ -72,6 +73,9 @@ public class DeleteStoredProcedureParame
* Using LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS here to exclude operational attributes
* especially subentry related ones like "triggerExecutionSubentries".
*/
- return opContext.lookup( deletedEntryName, ByPassConstants.LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, deletedEntryName, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+
+ return session.getDirectoryService().getPartitionNexus().lookup( lookupContext );
}
}
Modified: directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java (original)
+++ directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java Fri Nov 4 15:25:40 2011
@@ -24,9 +24,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.apache.directory.server.core.api.CoreSession;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.core.api.interceptor.context.OperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.entry.Entry;
import org.apache.directory.shared.ldap.model.entry.Modification;
@@ -104,9 +105,12 @@ public class ModifyStoredProcedureParame
private Entry getEntry( OperationContext opContext ) throws LdapException
{
/**
- * Using LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS here to exclude operational attributes
+ * Exclude operational attributes while doing lookup
* especially subentry related ones like "triggerExecutionSubentries".
*/
- return opContext.lookup( modifiedEntryName, ByPassConstants.LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, modifiedEntryName, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+
+ return session.getDirectoryService().getPartitionNexus().lookup( lookupContext );
}
}
Modified: directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java?rev=1197596&r1=1197595&r2=1197596&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java Fri Nov 4 15:25:40 2011
@@ -27,19 +27,19 @@ 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.DirectoryService;
import org.apache.directory.server.core.api.entry.ClonedServerEntry;
import org.apache.directory.server.core.api.interceptor.BaseInterceptor;
-import org.apache.directory.server.core.api.interceptor.InterceptorChain;
import org.apache.directory.server.core.api.interceptor.NextInterceptor;
import org.apache.directory.server.core.api.interceptor.context.AddOperationContext;
import org.apache.directory.server.core.api.interceptor.context.DeleteOperationContext;
+import org.apache.directory.server.core.api.interceptor.context.LookupOperationContext;
import org.apache.directory.server.core.api.interceptor.context.ModifyOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveAndRenameOperationContext;
import org.apache.directory.server.core.api.interceptor.context.MoveOperationContext;
import org.apache.directory.server.core.api.interceptor.context.OperationContext;
import org.apache.directory.server.core.api.interceptor.context.RenameOperationContext;
-import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.server.core.api.sp.StoredProcEngine;
import org.apache.directory.server.core.api.sp.StoredProcEngineConfig;
import org.apache.directory.server.core.api.sp.StoredProcExecutionManager;
@@ -128,7 +128,11 @@ public class TriggerInterceptor extends
{
Dn parentDn = dn.getParent();
- entry = opContext.lookup( parentDn, ByPassConstants.LOOKUP_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = opContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, parentDn );
+ lookupContext.setAttrsId( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+
+ entry = directoryService.getPartitionNexus().lookup( lookupContext );
}
Attribute subentries = entry.get( SchemaConstants.TRIGGER_EXECUTION_SUBENTRIES_AT );
@@ -436,7 +440,10 @@ public class TriggerInterceptor extends
// will not be valid at the new location.
// This will certainly be fixed by the SubentryInterceptor,
// but after this service.
- Entry importedEntry = moveAndRenameContext.lookup( oldDn, ByPassConstants.LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = moveAndRenameContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, oldDn, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+
+ Entry importedEntry = directoryService.getPartitionNexus().lookup( lookupContext );
// As the target entry does not exist yet and so
// its subentry operational attributes are not there,
@@ -508,7 +515,10 @@ public class TriggerInterceptor extends
// will not be valid at the new location.
// This will certainly be fixed by the SubentryInterceptor,
// but after this service.
- Entry importedEntry = moveContext.lookup( dn, ByPassConstants.LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
+ CoreSession session = moveContext.getSession();
+ LookupOperationContext lookupContext = new LookupOperationContext( session, dn, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+
+ Entry importedEntry = directoryService.getPartitionNexus().lookup( lookupContext );
// As the target entry does not exist yet and so
// its subentry operational attributes are not there,