Search code examples
javasecurityannotationsaspectjaspect

How to get the value of an annotation parameter for usage in AspectJ?


Consider this method:

@Access(rights = GUEST)
public void foo() {
  doSomething();
}

This pointcut basically matches if the method has an @Access annotation:

pointcut check() : 
execution(@Access * *(..));

But how can I access the field rights of @Access, which stores the particular access level, so that I can work with it?


Solution

  • Try to use:

    pointcut check(Access access) : 
    execution(@Access * *(..)) && @annotation(access);
    

    See documentation here.