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);
	}
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
This method should be used to enforce security on a <code > MethodInvocation< / code > .