Spring AOP: wie man in den Anmerkungen der Methode emfehlen

Ich würde gerne verwirklichen deklarative security mit Spring/AOP und Anmerkungen.
Wie sehen Sie in der nächsten code-Beispiel habe ich die Eingeschränkte Anmerkungen mit dem Parameter "allowedRoles" für die Definition, wer berechtigt ist, die zur Ausführung eines emfehlen Methode.

    @Restricted(allowedRoles="jira-administrators")
        public void setPassword(...) throws UserMgmtException {             
               //set password code
               ...
        }

Nun, das problem ist, dass in meiner Beratung habe ich keinen Zugriff auf die vordefinierten meta-Annotationen:

public Object checkPermission(ProceedingJoinPoint pjp) throws Throwable {

    Signature signature = pjp.getSignature();
    System.out.println("Allowed:" + rolesAllowedForJoinPoint(pjp));
            ...
}

private Restricted rolesAllowedForJoinPoint(ProceedingJoinPoint thisJoinPoint)
        {
            MethodSignature methodSignature = (MethodSignature) thisJoinPoint.getSignature();
            Method targetMethod = methodSignature.getMethod();

            return targetMethod.getAnnotation(Restricted.class);
        }

Die oben genannte Methode immer null zurück (es gibt keine Anmerkungen gefunden).
Gibt es da eine einfache Lösung?

Lese ich etwas über die Verwendung des AspectJ-agent, aber ich würde es vorziehen, diese nicht zu verwenden, agent.

InformationsquelleAutor der Frage hugri | 2010-04-01

Schreibe einen Kommentar