Package org.apache.shiro.aop
Class AnnotationMethodInterceptor
- java.lang.Object
-
- org.apache.shiro.aop.MethodInterceptorSupport
-
- org.apache.shiro.aop.AnnotationMethodInterceptor
-
- All Implemented Interfaces:
MethodInterceptor
- Direct Known Subclasses:
AuthorizingAnnotationMethodInterceptor
public abstract class AnnotationMethodInterceptor extends MethodInterceptorSupport
MethodInterceptor that inspects a specific annotation on the method invocation before continuing its execution. The annotation is acquired from theMethodInvocationvia aAnnotationResolverinstance that may be configured. Unless overridden, the defaultAnnotationResolveris a- Since:
- 0.9
-
-
Constructor Summary
Constructors Constructor Description AnnotationMethodInterceptor(AnnotationHandler handler)Constructs anAnnotationMethodInterceptorwith theAnnotationHandlerthat will be used to process annotations of a corresponding type.AnnotationMethodInterceptor(AnnotationHandler handler, AnnotationResolver resolver)Constructs anAnnotationMethodInterceptorwith theAnnotationHandlerthat will be used to process annotations of a corresponding type, using the specifiedAnnotationResolverto acquire annotations at runtime.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AnnotationgetAnnotation(MethodInvocation mi)Returns the Annotation that this interceptor will process for the specified method invocation.AnnotationHandlergetHandler()Returns theAnnotationHandlerused to perform authorization behavior based on an annotation discovered at runtime.AnnotationResolvergetResolver()Returns theAnnotationResolverto use to acquire annotations from intercepted methods at runtime.voidsetHandler(AnnotationHandler handler)Sets theAnnotationHandlerused to perform authorization behavior based on an annotation discovered at runtime.voidsetResolver(AnnotationResolver resolver)Returns theAnnotationResolverto use to acquire annotations from intercepted methods at runtime.booleansupports(MethodInvocation mi)Returnstrueif this interceptor supports, that is, should inspect, the specifiedMethodInvocation,falseotherwise.-
Methods inherited from class org.apache.shiro.aop.MethodInterceptorSupport
getSubject
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.shiro.aop.MethodInterceptor
invoke
-
-
-
-
Constructor Detail
-
AnnotationMethodInterceptor
public AnnotationMethodInterceptor(AnnotationHandler handler)
Constructs anAnnotationMethodInterceptorwith theAnnotationHandlerthat will be used to process annotations of a corresponding type.- Parameters:
handler- the handler to delegate to for processing the annotation.
-
AnnotationMethodInterceptor
public AnnotationMethodInterceptor(AnnotationHandler handler, AnnotationResolver resolver)
Constructs anAnnotationMethodInterceptorwith theAnnotationHandlerthat will be used to process annotations of a corresponding type, using the specifiedAnnotationResolverto acquire annotations at runtime.- Parameters:
handler- the handler to use to process any discovered annotationresolver- the resolver to use to locate/acquire the annotation- Since:
- 1.1
-
-
Method Detail
-
getHandler
public AnnotationHandler getHandler()
Returns theAnnotationHandlerused to perform authorization behavior based on an annotation discovered at runtime.- Returns:
- the
AnnotationHandlerused to perform authorization behavior based on an annotation discovered at runtime.
-
setHandler
public void setHandler(AnnotationHandler handler)
Sets theAnnotationHandlerused to perform authorization behavior based on an annotation discovered at runtime.- Parameters:
handler- theAnnotationHandlerused to perform authorization behavior based on an annotation discovered at runtime.
-
getResolver
public AnnotationResolver getResolver()
Returns theAnnotationResolverto use to acquire annotations from intercepted methods at runtime. The annotation is then used by thehandlerto perform authorization logic.- Returns:
- the
AnnotationResolverto use to acquire annotations from intercepted methods at runtime. - Since:
- 1.1
-
setResolver
public void setResolver(AnnotationResolver resolver)
Returns theAnnotationResolverto use to acquire annotations from intercepted methods at runtime. The annotation is then used by thehandlerto perform authorization logic.- Parameters:
resolver- theAnnotationResolverto use to acquire annotations from intercepted methods at runtime.- Since:
- 1.1
-
supports
public boolean supports(MethodInvocation mi)
Returnstrueif this interceptor supports, that is, should inspect, the specifiedMethodInvocation,falseotherwise. The default implementation simply does the following:returngetAnnotation(mi)!= null- Parameters:
mi- theMethodInvocationfor the method being invoked.- Returns:
trueif this interceptor supports, that is, should inspect, the specifiedMethodInvocation,falseotherwise.
-
getAnnotation
protected Annotation getAnnotation(MethodInvocation mi)
Returns the Annotation that this interceptor will process for the specified method invocation. The default implementation acquires the annotation using an annotationresolverusing the internal annotationhandler'sannotationClass.- Parameters:
mi- the MethodInvocation wrapping the Method from which the Annotation will be acquired.- Returns:
- the Annotation that this interceptor will process for the specified method invocation.
-
-