org.springframework.security.afterinvocation
Class AclEntryAfterInvocationCollectionFilteringProvider
java.lang.Object
org.springframework.security.afterinvocation.AbstractAclProvider
org.springframework.security.afterinvocation.AclEntryAfterInvocationCollectionFilteringProvider
- All Implemented Interfaces:
- AfterInvocationProvider
public class AclEntryAfterInvocationCollectionFilteringProvider
- extends AbstractAclProvider
Given a Collection
of domain object instances returned from a secure object invocation, remove
any Collection
elements the principal does not have appropriate permission to access as defined by the
AclService
.
The AclService
is used to retrieve the access control list (ACL) permissions associated with
each Collection
domain object instance element for the current Authentication
object.
This after invocation provider will fire if any ConfigAttribute.getAttribute()
matches the AbstractAclProvider.processConfigAttribute
. The provider will then lookup the ACLs from the AclService
and ensure the
principal is Acl.isGranted(Permission[], Sid[], boolean)
when presenting the AbstractAclProvider.requirePermission
array to that method.
If the principal does not have permission, that element will not be included in the returned
Collection
.
Often users will setup a BasicAclEntryAfterInvocationProvider
with a AbstractAclProvider.processConfigAttribute
of AFTER_ACL_COLLECTION_READ
and a AbstractAclProvider.requirePermission
of
BasePermission.READ
. These are also the defaults.
If the provided returnObject
is null
, a null
Collection
will be returned. If the provided returnObject
is not a Collection
, an AuthorizationServiceException
will be thrown.
All comparisons and prefixes are case sensitive.
- Version:
- $Id$
- Author:
- Ben Alex, Paulo Neves
Field Summary |
protected static org.apache.commons.logging.Log |
logger
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
logger
protected static final org.apache.commons.logging.Log logger
AclEntryAfterInvocationCollectionFilteringProvider
public AclEntryAfterInvocationCollectionFilteringProvider(AclService aclService,
Permission[] requirePermission)
decide
public Object decide(Authentication authentication,
Object object,
ConfigAttributeDefinition config,
Object returnedObject)
throws AccessDeniedException
- Throws:
AccessDeniedException
Copyright © 2004-2010 SpringSource, Inc. All Rights Reserved.