No vraptor, como fazer para acessar dinamicamente no interceptor a implementação de um determinado @Compnent, sendo que em tempo de compilação não sei qual vai ser ele? Em suma, em runtime acesso determinadas annotations do método ou classe que está sendo executado, e ai preciso delegar a execução ao @Component correspondente.
O uso é mais ou menos assim:
// Componente qualquer que define regras de acesso via uma annotation
@Component
@SecurityConstraint(multiRoles = { AuthenticatedRule.class })
public class UserController {
// .....
}
AuthenticatedRule.class vai ser a classe que em runtime, no inteceptor, vou precisar da implementação. Ela está definida assim:
@Component
public class AuthenticatedRule implements AccessRule {
// ....
}
No código do interceptor, pego as annotations e eventualmente descubro que ele tem uma rule apontando para AuthenticatedRule.class (ou qualquer uma outra que tenha sido definida). Neste ponto preciso da instância (seja ela application, request, session scoped etc…).
Como fazer?
