Socorro Struts  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

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.

esta assim nas paginas:

<logic:notPresent name="Usuario" scope="session">
<c:redirect url="login.do"/>
</logic:notPresent>

Tem algo errado? Tem que fazer mais alguma coisa ? Socorroooo!
rlazoti
Virtual Machine Man
[Avatar]

Membro desde: 09/04/2008 11:02:51
Mensagens: 569
Localização: Sao Paulo / SP
Offline

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

Rodrigo Lazoti
blog: http://www.rodrigolazoti.com.br
twitter: http://twitter.com/rodrigolazoti
[WWW]
Eduardo Negr?
HelloWorld
[Avatar]

Membro desde: 17/06/2008 08:48:57
Mensagens: 14
Offline

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! 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!!??


Tecngo. em Análise de Desenvolvimento de Sistemas
Universidade Tecnológica Federal do Paraná (UTFPR)

"O valor de uma pessoa depende do que ela é, não do que ela faz, ou quanto ela tem. O valor de uma pessoa, ou uma coisa, ou uma idéia, é ser, não fazer, ou ter." (Alice Mary Hilton)
[Email] [MSN]
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

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.
Copy/paste de métodos é jogar trab no lixo e matar a OO...

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
vinny767
Java Ninja
[Avatar]

Membro desde: 28/01/2008 23:50:54
Mensagens: 263
Localização: Rio de Janeiro
Offline

Alguem poderia dar um exemplo de como implementar um Filtro?
[Email] [WWW] [MSN]
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

http://erkobridee.com/2007/12/20/mentawai-implementando-um-filtro-para-utilizar-como-sistema-de-log/

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

vlw pelas respostas. Agroa Eduardo Negr? como faria essa action abstrata ? tem algum exemplo ?
eu nao compreendi como implementaria o filtro ?
dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

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 ?
dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

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 ?
dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

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.
dricorj
Thread.start()

Membro desde: 24/10/2006 01:54:17
Mensagens: 33
Offline

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?
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team