VRaptor 3 - Filtros e anotações [RESOLVIDO]

6 respostas
cinei

Na versão 2, em um dos filtros antes de executar a lógica (flow.execute()), eu verifico se tenho alguma anotação customizada na lógica e consigo também identificar o @Component que contem o método. Utilizo estas informações para controle de acesso por usuário em cada método que exige controle (uma lista de salários por exemplo) e a lista de permissões está registrada em banco de dados.
Minhas dúvidas:

  1. Como identificar se há anotação no método chamado?
  2. Como saber a classe (Resource) que contém o método?
  3. Qual o método chamado pela view?

Obrigado

6 Respostas

Lucas_Cavalcanti

intercept(ResourceMethod method,…)
method.getMethod().isAnnotationPresent(Anotacao.class);

method.getResource().getType();

como assim?

cinei

Exemplo: O usuário logado pode visualizar o conteudo exposto por listarSalarios()?

@Restricao({"Visualizar", "Imprimir", ...})
public List<...> listarSalarios()  {
.
.
.
  
}

O

Lucas_Cavalcanti
ResourceMethod method;

if(method.getMethod().isAnnotationPresent(Restricao.class)) {
    String[] restricoes method.getMethod().getAnnotation(Restricao.class).value();
    //faz algo
}
cinei

Muitissimo obrigado, Lucas. Vou implementar as mudanças.
Provavelmente eu consiga algo parecido com:

Sttring metodo = method.getMethod().getSimpleName();
cinei

Revendo a documentação, as respostas já estavam todas lá.
Estava me basdeando na última leitura quando ainda não constava.
Lucas e demais da equipe, meus parabens.

Pelo pouco que vi até aqui, percebe-se mais facilidades.

cinei

cinei:
Na versão 2, em um dos filtros antes de executar a lógica (flow.execute()), eu verifico se tenho alguma anotação customizada na lógica e consigo também identificar o @Component que contem o método. Utilizo estas informações para controle de acesso por usuário em cada método que exige controle (uma lista de salários por exemplo) e a lista de permissões está registrada em banco de dados.
Minhas dúvidas:

  1. Como identificar se há anotação no método chamado?
  2. Como saber a classe (Resource) que contém o método?
  3. Qual o método chamado pela view?

Obrigado

Criado 25 de setembro de 2009
Ultima resposta 25 de set. de 2009
Respostas 6
Participantes 2