core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptor.java
public Object invoke(MethodInvocation mi) throws Throwable {
		InterceptorStatusToken token = super.beforeInvocation(mi);

		Object result;
		try {
			result = mi.proceed();
		}
		finally {
			super.finallyInvocation(token);
		}
		return super.afterInvocation(token, result);
	}
public Object invoke(MethodInvocation mi) throws Throwable {
		InterceptorStatusToken token = super.beforeInvocation(mi);

		Object result;
		try {
			result = mi.proceed();
		}
		finally {
			super.finallyInvocation(token);
		}
		return super.afterInvocation(token, result);
	}
This method should be used to enforce security on a <code>MethodInvocation</code>.

@param mi The method being invoked which requires a security decision

@return The returned value from the method invocation (possibly modified by the
{@code AfterInvocationManager}).

@throws Throwable if any error occurs