| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/03/2008 09:24:10
|
fanama
JavaTeenager
Membro desde: 21/05/2007 16:32:57
Mensagens: 176
Localização: Socorro - SP
Offline
|
Pessoal;
Bom dia!
Tenho em meu projeto a JSP "index.jsp" que possui um login de acesso. O usuário estando autenticado é redirecionado para a página "welcome.jsp". Até aí tudo belezinha, mas acontece que se o usuário digitar diretamente o endereço da welcome.jsp ele entra da mesma forma, sem passar pelo login (index.jsp).
Andei lendo a respeito, estudando um pouco sobre o assunto e como travei, resolvi solicitar ajuda aos colegas.
De acordo com alguns artigos que li, coloquei no meu web.xml:
Acontece que mesmo assim o acesso direto é permitido, poderiam me orientar dizendo se tem mais algum procedimento a ser adotado?
Antecipadamente agradeço;
Tenham um excelente dia!
Marco A.
|
"A boca fala do que está cheio o coração" |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/03/2008 09:58:30
|
CintiaDR
JavaEvangelist
![[Avatar]](/images/avatar/48b508b64892bdf1d3a44e6de12e146a.jpg)
Membro desde: 01/10/2007 06:49:30
Mensagens: 476
Localização: Curitiba - PR
Offline
|
Nós aqui conseguimos "redirecionar pro login" usando o PhaseListener. Fazemos daí o teste se está logado ou não...
|
Faça Perguntas Inteligentes - NÃO me pergunte como
PelaMorDeQualquerCoisa, o GUJ não é penico! Google é seu amigo! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/03/2008 10:03:32
|
Bravox
Virtual Machine Man
![[Avatar]](/images/avatar/a7971abb4134fc0cfcec7d589e1ebcf6.png)
Membro desde: 08/01/2005 01:33:24
Mensagens: 563
Localização: São Paulo
Offline
|
Para resolver esse problema vc pode utilizar filtros que verificam se o usuário está logado antes de responder a requisição , é um método simples e eficaz , para isso basta vc criar uma classe que implementa a interface javax.servlet.Filter ( o método doFilter() já resolve ) , ai vai um exemplo de filtro que uso para usuários administradores:
e no web.xml basta add :
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/03/2008 13:05:53
|
fanama
JavaTeenager
Membro desde: 21/05/2007 16:32:57
Mensagens: 176
Localização: Socorro - SP
Offline
|
Obrigado pelas dicas!
Gostaria de mais uma vez poder contar com o auxílio de vocês. Estou gatinhando, não tenho ainda muito conhecimento em java, mas vou em frente!
Sobre o PhaseListener, não consegui entender o procedimento, se puderem me dar um exemplo agradeceria.
Agora sobre o Filter, até fui ais "longe". Criei a classe conforme orientado:]
Como atribuir o valor ao "usuCod" para que esta classe faça a verificação. No meu caso o "usuCod" é está em um bean que valorizo quando checado no banco.
Obrigado pessoal!
Marco A
This message was edited 1 time. Last update was at 13/03/2008 13:06:25
|
"A boca fala do que está cheio o coração" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 07:50:32
|
Bravox
Virtual Machine Man
![[Avatar]](/images/avatar/a7971abb4134fc0cfcec7d589e1ebcf6.png)
Membro desde: 08/01/2005 01:33:24
Mensagens: 563
Localização: São Paulo
Offline
|
Acredito que na hora de o usuário se logar no seu sistema, ira gerar um evento que será processado por um MB ( fazendo um pesquisa no banco ou coisa do gênero ) , enfim de alguma forma vc vai verificar se o usuário existe, e se ele existe vc coloca ele na sessão da sua aplicação , com isso na hora que for passar pelo filtro o usuário vai estar na sessão. E para recuperar a sessão e add um objeto nela para que vc possa recuperar em seu filtro vc pode fazer da seguinte forma :
com isso o seu objeto está disponível em toda sessão
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 06:51:29
|
fanama
JavaTeenager
Membro desde: 21/05/2007 16:32:57
Mensagens: 176
Localização: Socorro - SP
Offline
|
Olá Bravox e colegas do GUJ!
Bom Dia!
Se puderem me ajudar outra vez, agradeço.
Fiz da seguinte maneira:
Na minha classe que verifica o usuário, via SQL no banco, coloquei como me orientou:
A minha classe FilterLogin está assim:
o meu web xml:
Acontece que ao executar, não está entrando no filter. Pude notar que no web.xml tem a tag <url-pattern> dependendo do que eu coloco alí a página nem é exibida, dá o erro do tamcat:
type Status report
message /Pharma/Pharma/
description The requested resource (/Pharma/Pharma/) is not available.
Pode me ajudar?
Obrigado!
Tenham uma excelente semana!
Marco A.
|
"A boca fala do que está cheio o coração" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 07:33:48
|
Bravox
Virtual Machine Man
![[Avatar]](/images/avatar/a7971abb4134fc0cfcec7d589e1ebcf6.png)
Membro desde: 08/01/2005 01:33:24
Mensagens: 563
Localização: São Paulo
Offline
|
No web xml faz assim :
e no seu filtre :
e adiciona no path da aplicação a seguinte biblioteca commons lang
This message was edited 2 times. Last update was at 17/03/2008 07:35:06
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 09:37:53
|
fanama
JavaTeenager
Membro desde: 21/05/2007 16:32:57
Mensagens: 176
Localização: Socorro - SP
Offline
|
Bravox;
Creio que seja a última pergunta:
Alterei conforme me orientou acontece que a função "StringUtils" não tenho no meu NB, ee até sugere que eu import da classe: com.sun.xml.internal.ws.util.StringUtils mas se eu assim fizer dá erro dizendo que o método removeStart não existe. De qual pacote devo importar?
Outra pergunta: Baixei a Commons Lang, fui no NetBeans e adicionei os JARS que estavam compactados, é só isso mesmo?
Mais uma vez agradeço sua atenção e apoio!
Abraço
Marco Aurélio
|
"A boca fala do que está cheio o coração" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 10:37:09
|
Bravox
Virtual Machine Man
![[Avatar]](/images/avatar/a7971abb4134fc0cfcec7d589e1ebcf6.png)
Membro desde: 08/01/2005 01:33:24
Mensagens: 563
Localização: São Paulo
Offline
|
fanama wrote:Bravox;
Creio que seja a última pergunta:
Relaxa precisando estamos ai !
fanama wrote:Bravox;
Alterei conforme me orientou acontece que a função "StringUtils" não tenho no meu NB, ee até sugere que eu import da classe: com.sun.xml.internal.ws.util.StringUtils mas se eu assim fizer dá erro dizendo que o método removeStart não existe. De qual pacote devo importar?
Outra pergunta: Baixei a Commons Lang, fui no NetBeans e adicionei os JARS que estavam compactados, é só isso mesmo?
Então , A classe StringUtils é uma classe da biblioteca commons lang , se ele não aparece e por que ela não está no path da su app , vc precisa somente adicionar um jar no path , esse jar está nomeado + ou - assim commons-lang-2.3.jar , com isso vc já tem a classe disponível para usar
P.S: Eu uso eclipse então não sei te informar direito como add um jar no path da sua aplicação !
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2008 14:54:30
|
fanama
JavaTeenager
Membro desde: 21/05/2007 16:32:57
Mensagens: 176
Localização: Socorro - SP
Offline
|
Bravox;
Boa Tarde!
Com a sua ajuda estou quase lá!
Funcionou certinho, até demais... rsrsrsrs
O filter está passando pela minha página inicial (index.jsp) aí como o objeto "usuCod" é vazio ele dá um redirect para a pagina de erro...rsrsrs
Aí não tem como eu me legar na página!
Como tratar isso, ou seja, funcionar o filtro para todas as páginas, exceto para a pagina inicial (index.jsp) ?
Mais uma vez agradeço!
Marco A.
|
"A boca fala do que está cheio o coração" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/03/2008 07:27:16
|
Bravox
Virtual Machine Man
![[Avatar]](/images/avatar/a7971abb4134fc0cfcec7d589e1ebcf6.png)
Membro desde: 08/01/2005 01:33:24
Mensagens: 563
Localização: São Paulo
Offline
|
Coloca a index.jsp na raiz do projeto ou seja no mesmo diretório que está o diretório WEB-INF, fica + ou - assim:
e no web.xml basta colocar :
Com isso a index não passa pelo o filtro ( e realmente não há necessidade sendo que o usuário precisa se logar )
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/11/2008 08:05:43
|
Alexandret
HelloWorld
Membro desde: 27/07/2005 12:42:44
Mensagens: 10
Offline
|
Bravox ou quem puder,
Cara e se eu quiser fazer com perfil de acesso? Tipo, usuario Admin pode navegar nas paginas X, usuário tipo Cliente pode navegar nas páginas Y? Como proceder?
Obrigado,
Alexandre
|
|
|
 |
|
|