org.springframework.security.access.intercept.aspectj
Class AspectJSecurityInterceptor

java.lang.Object
  extended by org.springframework.security.access.intercept.AbstractSecurityInterceptor
      extended by org.springframework.security.access.intercept.aspectj.AspectJSecurityInterceptor
All Implemented Interfaces:
InitializingBean, ApplicationEventPublisherAware, MessageSourceAware

public class AspectJSecurityInterceptor
extends AbstractSecurityInterceptor

Provides security interception of AspectJ method invocations.

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

The secure object type is org.aspectj.lang.JoinPoint, which is passed from the relevant around() advice. The around() advice also passes an anonymous implementation of AspectJCallback which contains the call for AspectJ to continue processing: return proceed();.

Refer to AbstractSecurityInterceptor for details on the workflow.

Version:
$Id: AspectJSecurityInterceptor.java 3655 2009-05-11 05:44:31Z ltaylor $
Author:
Ben Alex

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

Constructor Detail

AspectJSecurityInterceptor

public AspectJSecurityInterceptor()
Method Detail

getSecureObjectClass

public Class<? extends Object> 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.aspectj.lang.JoinPoint jp,
                     AspectJCallback advisorProceed)
This method should be used to enforce security on a JoinPoint.

Parameters:
jp - The AspectJ joint point being invoked which requires a security decision
advisorProceed - the advice-defined anonymous class that implements AspectJCallback containing a simple return proceed(); statement
Returns:
The returned value from the method invocation

obtainSecurityMetadataSource

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

setSecurityMetadataSource

public void setSecurityMetadataSource(MethodSecurityMetadataSource newSource)


Copyright © 2004-2009 SpringSource, Inc. All Rights Reserved.