protected void bind(Subject subject) {
        clearSubject();
        this.threadState = new SubjectThreadState(subject);
        this.threadState.bind();
    }
Common method tests across implementations.  In actuality, the methods don't change across
subclasses - only the mechanism that enables AOP pointcuts and applies advice.  Those differences
are in spring configuration only.

@since 1.1
support/spring/src/test/java/org/apache/shiro/spring/security/interceptor/AbstractAuthorizationAnnotationTest.java