public class AclEntryAfterInvocationProvider extends AbstractAclProvider implements MessageSourceAware
AclService.
The AclService is used to retrieve the access control list (ACL) permissions associated with a
domain object instance 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(List, List, boolean) when presenting the AbstractAclProvider.requirePermission array to that method.
Often users will set up an AclEntryAfterInvocationProvider with a AbstractAclProvider.processConfigAttribute of AFTER_ACL_READ and a AbstractAclProvider.requirePermission of
BasePermission.READ. These are also the defaults.
If the principal does not have sufficient permissions, an AccessDeniedException will be thrown.
If the provided returnedObject is null, permission will always be granted and
null will be returned.
All comparisons and prefixes are case sensitive.
| Modifier and Type | Field and Description |
|---|---|
protected static org.apache.commons.logging.Log |
logger |
protected MessageSourceAccessor |
messages |
aclService, objectIdentityRetrievalStrategy, processConfigAttribute, processDomainObjectClass, requirePermission, sidRetrievalStrategy| Constructor and Description |
|---|
AclEntryAfterInvocationProvider(AclService aclService,
List<Permission> requirePermission) |
AclEntryAfterInvocationProvider(AclService aclService,
String processConfigAttribute,
List<Permission> requirePermission) |
| Modifier and Type | Method and Description |
|---|---|
Object |
decide(Authentication authentication,
Object object,
Collection<ConfigAttribute> config,
Object returnedObject) |
void |
setMessageSource(MessageSource messageSource) |
getProcessDomainObjectClass, hasPermission, setObjectIdentityRetrievalStrategy, setProcessConfigAttribute, setProcessDomainObjectClass, setSidRetrievalStrategy, supports, supportsprotected static final org.apache.commons.logging.Log logger
protected MessageSourceAccessor messages
public AclEntryAfterInvocationProvider(AclService aclService, List<Permission> requirePermission)
public AclEntryAfterInvocationProvider(AclService aclService, String processConfigAttribute, List<Permission> requirePermission)
public Object decide(Authentication authentication, Object object, Collection<ConfigAttribute> config, Object returnedObject) throws AccessDeniedException
decide in interface AfterInvocationProviderAccessDeniedExceptionpublic void setMessageSource(MessageSource messageSource)
setMessageSource in interface MessageSourceAware