code: public Resolution intercept(ExecutionContext executionContext)
  			throws Exception
  	{
  		Resolution resolution;
  
  		if (securityManager != null)
  		{
  			// Add the security manager to the request.
  			// This is used (for example) by the security tag.
  			executionContext.getActionBeanContext().getRequest().setAttribute(SecurityInterceptor.SECURITY_MANAGER,
                      securityManager);
  			
  			switch (executionContext.getLifecycleStage())
  			{
  				case BindingAndValidation:
  				case CustomValidation:
  					resolution = interceptBindingAndValidation(executionContext);
  					break;
  				case EventHandling:
  					resolution = interceptEventHandling(executionContext);
  					break;
  				case ResolutionExecution:
  					resolution = interceptResolutionExecution(executionContext);
  					break;
  				default: // Should not happen (see @Intercepts annotation on class)
  					resolution = executionContext.proceed();
  					break;
  			}
  		}
  		else
  		{
  			// There is no security manager, so everything is allowed.
  
  			resolution = executionContext.proceed();
  		}
  
  		return resolution;
  	}
docs: Intercept execution.
  
  @param executionContext the context of the execution being intercepted
  @return the resulting {@link Resolution}; returns {@link ExecutionContext#proceed()} if all is well
  @throws Exception on error