protected void performBeforeInterception(JoinPoint aJoinPoint) throws Throwable {
        if (LOGGER.isTraceEnabled()) {
            LOGGER.trace("#### Invoking a method decorated with a Shiro annotation"
                    + "\n\tkind       : " + aJoinPoint.getKind()
                    + "\n\tjoinPoint  : " + aJoinPoint
                    + "\n\tannotations: "
                        + Arrays.toString(((MethodSignature) aJoinPoint.getSignature()).getMethod().getAnnotations())
                    + "\n\ttarget     : " + aJoinPoint.getTarget()
            );
        }

        // 1. Adapt the join point into a method invocation
        BeforeAdviceMethodInvocationAdapter mi = BeforeAdviceMethodInvocationAdapter.createFrom(aJoinPoint);

        // 2. Delegate the authorization of the method call to the super class
        super.invoke(mi);
    }
Performs the method interception of the before advice at the specified joint point.

@param aJoinPoint The joint point to intercept.
@throws Throwable If an error occurs performing the method invocation.
support/aspectj/src/main/java/org/apache/shiro/aspectj/AspectjAnnotationsAuthorizingMethodInterceptor.java