Ola pessoal estou com uma dúvida, estou dando manutenção em uma aplicação que utiliza um Filtro para verificar o usuário logado,
surgiu um erro e eu verifiquei que se eu executar um redirect dentro do filter um forward executado na próxima requisição está direcionando para a mesma página do redirect.
Sua dúvida é se você pode fazer um redirect e depois um forward?
luciano2
Não a dúvida não é essa. Deixa eu explicar melhor.
Tenho uma aplicação que usa JAAS para autenticação, só que a própria aplicação faz a parte de autorização. Quando um usuário não autorizado loga na aplicação eu executo um session.invalidate() e logo depois faço um redirect para página de erro. Depois dessa operação eu tento logar com um usuário autorizado, o usuário consegue fazer login mas um forward que eu executo não funciona, ele retorna para a mesma página do redirect ao invés de entrar no sistema.
Sabe oque pode estar acontecendo?
Hebert_Coelho
Sua app implementa um módulo JAAS?
Como que você faz?quote]Quando um usuário não autorizado loga na aplicação eu executo um session.invalidate()[/quote]
luciano2
Minha aplicação não implementa um modulo, a aplicação utiliza o módulo básico do JBoss.
O session.invalidate() é feito dentro de um Filter, ele invalida a sessão e redireciona para a tela de login com a mensagem de erro.
Hebert_Coelho
Pois é cara, minha dúvida é qual a necessidade desse filtro. =/
Uma vez que o JAAS já captura e não deixa ninguém navegar de modo indevido. =/
luciano2
A necessidade é que o JAAS só autentica, mas dentro dos usuário autenticados nem todos tem autorização para navegar.
Somente determinados perfis podem acessar determinadas funcionalidades e isto é controlado pela aplicação.
Hebert_Coelho
luciano@@:
A necessidade é que o JAAS só autentica, mas dentro dos usuário autenticados nem todos tem autorização para navegar.
Somente determinados perfis podem acessar determinadas funcionalidades e isto é controlado pela aplicação.
Disso aí que você sitou o que o JAAS não faz?
Até onde eu sei o JAAS faz justamente isso. Bem, mas isso não vem ao caso…
Seu problema está que após fazer o login vc não está conseguindo enviar o usuário para página correta ou parece que o usuário não está validando?
luciano2
JAAS faz tudo isso que eu disse, mas não da forma que meu cliente especificou e está brigando para que seja implementado.
Hebert_Coelho
Esses clientes… pfffffff
Pq ao invés de mandar um forward você não tenta mandar um HttpServletResponse.sendRedirect()?
luciano2
Eu mandei um sendRedirect quando invalidei o usuário não autorizado.
O problema é que logo após eu tento logar com o usuário autorizado e ai eu tenho que utilizar o forward para direcionar para a página principal.
Oque acontece é que quando faço submit da minha página de login ele faz duas coisas.
Vai na action J_Security_chek do JAAS e cria o principal com o usuário que eu fiz login, mas ao invés de executar o forward para página principal ele está seguindo para a url que veio do browser.
Hebert_Coelho
Realmente esse é o comportamento do JAAS.
Eu vi no link abaixo que o cara faz o seguinte antes de redirecionar: