Dúvida quanto ao Interceptor

3 respostas
italoborges

Estou na dúvida se essa implementação serve para o meu caso.

Tenho um form de login, se o login estiver correto, eu envio o usuário para “/app”, se não estiver correto, eu informo um erro de login e ele continua na mesma página.
Como eu ainda não programei minha aplicação para tratar isso, se eu digito direto no navegador /app ele passa sem ter logado.

Para este caso, eu consigo fazer isso que eu quero usando um Interceptor ou tem algum outro modo de fazer?

3 Respostas

paulo1911

olá amigo, se vc estiver usando servlets e jsp simples. Na realidade vc vai precisar impementar um Filter.

Você implementa o filter com essa sua regra de login e aplica seu filter no padrão de url raiz da sua app ou seja no url-pattern “/”.

Assim todas as requests passaram nesse filter e vc tera o resultado que procura. Pesquise sobre Filters em servlets.

Fica a dica

italoborges

Paulo, valeu pela resposta rápida.

Eu pesquisei sobre Filter também. Esqueci de mencionar que eu estou usando o VRaptor.
Por isso falei do Interceptor.
Eu consigo usar Filter com o VRaptor? Você sabe me dizer se ele tem algo para isso no próprio Framework?

Pelo que eu pesquisei aqui, o Interceptor faz isso, mas estou confuso com o código dele ainda.

paulo1911

Não trabalhei com VRaptor ainda mas acredito que no ciclo de vida da requisição, o interceptor vem depois que sua app ja recebeu a requisição e vai tratar na action relacionada. Nesse caso vc tera que pegar o contexto da app e tals… fica engessado na minha opinião.

Se for algo mais acadêmico vc pode usar um filter simples para essa função de regras de acesso mesmo com o VRaptor, repare que o proprio VRaptor declara um filter no web.xml da aplicação, seu filter deve vir primeiro nas declarações do web.xml. Mas se for algo mais profissional, eu recomendo o spring security. Mas e mais trabalhoso que o filter, tem mais xmls, vc precisa de um provider seu etc…

Fica a dica

Criado 29 de maio de 2012
Ultima resposta 29 de mai. de 2012
Respostas 3
Participantes 2