org.springframework.security.access.intercept.aopalliance
Class MethodSecurityInterceptor

java.lang.Object
  extended by org.springframework.security.access.intercept.AbstractSecurityInterceptor
      extended by org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor
All Implemented Interfaces:
org.aopalliance.aop.Advice, org.aopalliance.intercept.Interceptor, org.aopalliance.intercept.MethodInterceptor, Aware, InitializingBean, ApplicationEventPublisherAware, MessageSourceAware
Direct Known Subclasses:
AspectJMethodSecurityInterceptor

public class MethodSecurityInterceptor
extends AbstractSecurityInterceptor
implements org.aopalliance.intercept.MethodInterceptor

Provides security interception of AOP Alliance based method invocations.

The SecurityMetadataSource required by this security interceptor is of type MethodSecurityMetadataSource. This is shared with the AspectJ based security interceptor (AspectJSecurityInterceptor), since both work with Java Methods.

Refer to AbstractSecurityInterceptor for details on the workflow.


Field Summary
 
Fields inherited from class org.springframework.security.access.intercept.AbstractSecurityInterceptor
logger, messages
 
Constructor Summary
MethodSecurityInterceptor()
           
 
Method Summary
 Class<?> getSecureObjectClass()
          Indicates the type of secure objects the subclass will be presenting to the abstract parent for processing.
 MethodSecurityMetadataSource getSecurityMetadataSource()
           
 Object invoke(org.aopalliance.intercept.MethodInvocation mi)
          This method should be used to enforce security on a MethodInvocation.
 SecurityMetadataSource obtainSecurityMetadataSource()
           
 void setSecurityMetadataSource(MethodSecurityMetadataSource newSource)
           
 
Methods inherited from class org.springframework.security.access.intercept.AbstractSecurityInterceptor
afterInvocation, afterPropertiesSet, beforeInvocation, finallyInvocation, getAccessDecisionManager, getAfterInvocationManager, getAuthenticationManager, getRunAsManager, isAlwaysReauthenticate, isRejectPublicInvocations, isValidateConfigAttributes, setAccessDecisionManager, setAfterInvocationManager, setAlwaysReauthenticate, setApplicationEventPublisher, setAuthenticationManager, setMessageSource, setPublishAuthorizationSuccess, setRejectPublicInvocations, setRunAsManager, setValidateConfigAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodSecurityInterceptor

public MethodSecurityInterceptor()
Method Detail

getSecureObjectClass

public Class<?> getSecureObjectClass()
Description copied from class: AbstractSecurityInterceptor
Indicates the type of secure objects the subclass will be presenting to the abstract parent for processing. This is used to ensure collaborators wired to the AbstractSecurityInterceptor all support the indicated secure object class.

Specified by:
getSecureObjectClass in class AbstractSecurityInterceptor
Returns:
the type of secure object the subclass provides services for

invoke

public Object invoke(org.aopalliance.intercept.MethodInvocation mi)
              throws Throwable
This method should be used to enforce security on a MethodInvocation.

Specified by:
invoke in interface org.aopalliance.intercept.MethodInterceptor
Parameters:
mi - The method being invoked which requires a security decision
Returns:
The returned value from the method invocation (possibly modified by the AfterInvocationManager).
Throws:
Throwable - if any error occurs

getSecurityMetadataSource

public MethodSecurityMetadataSource getSecurityMetadataSource()

obtainSecurityMetadataSource

public SecurityMetadataSource obtainSecurityMetadataSource()
Specified by:
obtainSecurityMetadataSource in class AbstractSecurityInterceptor

setSecurityMetadataSource

public void setSecurityMetadataSource(MethodSecurityMetadataSource newSource)