Class AfterInvocationProviderManager
- java.lang.Object
-
- org.springframework.security.access.intercept.AfterInvocationProviderManager
-
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean,AfterInvocationManager
public class AfterInvocationProviderManager extends java.lang.Object implements AfterInvocationManager, org.springframework.beans.factory.InitializingBean
Provider-based implementation ofAfterInvocationManager.Handles configuration of a bean context defined list of
AfterInvocationProviders.Every
AfterInvocationProviderwill be polled when thedecide(Authentication, Object, Collection, Object)method is called. TheObjectreturned from each provider will be presented to the successive provider for processing. This means each provider must ensure they return theObject, even if they are not interested in the "after invocation" decision (perhaps as the secure object invocation did not include a configuration attribute a given provider is configured to respond to).
-
-
Field Summary
Fields Modifier and Type Field Description protected static org.apache.commons.logging.Loglogger
-
Constructor Summary
Constructors Constructor Description AfterInvocationProviderManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()java.lang.Objectdecide(Authentication authentication, java.lang.Object object, java.util.Collection<ConfigAttribute> config, java.lang.Object returnedObject)Given the details of a secure object invocation including its returnedObject, make an access control decision or optionally modify the returnedObject.java.util.List<AfterInvocationProvider>getProviders()voidsetProviders(java.util.List<?> newList)booleansupports(java.lang.Class<?> clazz)Iterates through allAfterInvocationProviders and ensures each can support the presented class.booleansupports(ConfigAttribute attribute)Indicates whether thisAfterInvocationManageris able to process "after invocation" requests presented with the passedConfigAttribute.
-
-
-
Method Detail
-
afterPropertiesSet
public void afterPropertiesSet()
- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
decide
public java.lang.Object decide(Authentication authentication, java.lang.Object object, java.util.Collection<ConfigAttribute> config, java.lang.Object returnedObject) throws AccessDeniedException
Description copied from interface:AfterInvocationManagerGiven the details of a secure object invocation including its returnedObject, make an access control decision or optionally modify the returnedObject.- Specified by:
decidein interfaceAfterInvocationManager- Parameters:
authentication- the caller that invoked the methodobject- the secured object that was calledconfig- the configuration attributes associated with the secured object that was invokedreturnedObject- theObjectthat was returned from the secure object invocation- Returns:
- the
Objectthat will ultimately be returned to the caller (if an implementation does not wish to modify the object to be returned to the caller, the implementation should simply return the same object it was passed by thereturnedObjectmethod argument) - Throws:
AccessDeniedException- if access is denied
-
getProviders
public java.util.List<AfterInvocationProvider> getProviders()
-
setProviders
public void setProviders(java.util.List<?> newList)
-
supports
public boolean supports(ConfigAttribute attribute)
Description copied from interface:AfterInvocationManagerIndicates whether thisAfterInvocationManageris able to process "after invocation" requests presented with the passedConfigAttribute.This allows the
AbstractSecurityInterceptorto check every configuration attribute can be consumed by the configuredAccessDecisionManagerand/orRunAsManagerand/orAfterInvocationManager.- Specified by:
supportsin interfaceAfterInvocationManager- Parameters:
attribute- a configuration attribute that has been configured against theAbstractSecurityInterceptor- Returns:
- true if this
AfterInvocationManagercan support the passed configuration attribute
-
supports
public boolean supports(java.lang.Class<?> clazz)
Iterates through allAfterInvocationProviders and ensures each can support the presented class.If one or more providers cannot support the presented class,
falseis returned.- Specified by:
supportsin interfaceAfterInvocationManager- Parameters:
clazz- the secure object class being queries- Returns:
- if the
AfterInvocationProviderManagercan support the secure object class, which requires every one of itsAfterInvocationProviders to support the secure object class
-
-