Vorrei implementare la sicurezza dichiarativa con Spring/AOP e le annotazioni. Come si vede nel prossimo esempio di codice, ho le Annotazioni Restricted con il parametro "allowedRoles" per definire chi è autorizzato ad eseguire un metodo consigliato.Spring AOP: come ottenere le annotazioni del metodo consigliato
@Restricted(allowedRoles="jira-administrators")
public void setPassword(...) throws UserMgmtException {
// set password code
...
}
Ora, il problema è che nel mio Consigli non ho accesso alle annotazioni definite:
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);
}
Il metodo di cui sopra restituisce sempre null (non ci sono annotazioni trovati a tutti). C'è una soluzione semplice a questo?
Ho letto qualcosa sull'utilizzo dell'agente AspectJ ma preferirei non utilizzare questo agente.
Grazie mille, che era la ragione. – hugri