To fazendo meu projeto final e to usando Struts, so que ta acontecendo um erro bisonho.
Ao fazer o login coloco na sessao um “Usuario”.
Em todas as paginas eu testo se existe o “Usuario” senao ele redireciona para a pagina de login.
Acontece que isso nao esta ocorrendo. Pegando o link, e mandando o NetBeans rodar a aplicacao, se eu colar o link no browser mesmo antes de ter feito o login a pagina ta entrando e nao ta redirecionando para a pagina de login.
Ja pensou em criar um filtro para chegar se existe esse atributo na sessao ?
assim nao precisa colocar esse codigo em todas as jsp’s.
[]s
Eduardo_Negr
A sugestão do rlazoti é a melhor maneira de se executar esta regra que vc está querendo sem ter que replicar o código para todas as páginas do seu sistema. Imagine se essa regra de verificação de usuário precisar mudar algum dia, vc teria então que sair alterando em todas as páginas do sistema! :shock: Melhor criar o filtro para interceptar as suas requisições e realizar tal validação mesmo.
Uma solução menos arrojada, porém funcional, seria a de se criar uma action abstrata, extendendo org.apache.struts.Action, que implementasse o método execute, realizando a validação que vc quer, e redirecionando para as outras actions suas mais específicas que herdariam dela e implementariam o método abstrato que vc definir. Não sei se deu pra entender muito bem!!?? :?
Eduardo_Bregaida
Opa, as idéias são boas e tudo mais, mas eu sei do q vc tá falando, se vc vai pelo login e bla bla bla funfa, mas se vc colocar a URL direto ele nem passa pela validação né?
1 - Ele está pegando algum usuário na sessão, por isso q ele ta abrindo a pag direto e funfando
2 - tbm tive esse problema, ele burla e entra, mas se o usuário n tiver logado ele dá pau, oq vc tem q fazer é matar o usuário qdo qq conexão é finalizada, por exemplo, o cara fechou a pag, o cara saiu do sistema, tem q matar ele da session, assim qdo vc colar o link direto ela automaticamente passa por sua validação e volta pra pag de login
3 - Aconselho vc encapsular isso como o amigo acima disse. 8)
Copy/paste de métodos é jogar trab no lixo e matar a OO…
vinny767
Alguem poderia dar um exemplo de como implementar um Filtro?
vlw pelas respostas. Agroa Eduardo Negr? como faria essa action abstrata ? tem algum exemplo ?
eu nao compreendi como implementaria o filtro ?
D
dricorj
seria assim:
1- eu teria um filter somente para ver se o atributo “Usuario” esta na sessao
2- se sim blz, continua
3- se nao, redireciona para a pagina de login
e isso ?
mas tem q configurar alguma coisa no web.xml ou outro lugar ?
Pq senao como a pagina vai executar o filter?
como faco o redirecionamento no filter para continuar ou para o login ?
D
dricorj
vlw pelas dicas. consegui implementar um filtro aqui e ta funfando belezinha, so que surgiu um outro problema.
Tenho 4 tipos de usuarios, e cada um tem acesso a algumas paginas e outras nao. Como eu faco esse controle ?
Eu pensei num jeito aqui, mas e meio tosco. Alguma sugestao ?
D
dricorj
ainda nao encontrei uma solucao boa para resolver esse problema. Alguem sabe como eu faco para permitir o acesso a determinadas paginas somente a um tipo de pessoa.
Tipo a secretaria so conseguir acessar as paginas dela e nao as do medico, etc.
Tive que colocar um if nas paginas, mas ai vou ter que colocar em todas, o que num e muito correto.
D
dricorj
Socorro, ng pra me ajudar ?
To sendo obrigado a testar em cada pagina se o usuario pode acessar ou nao. Queria colocar esse teste no filtro. Como fazer isso?