[JSF] Acesso direto a JSPs  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
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"
[Email] [MSN]
CintiaDR
JavaEvangelist
[Avatar]

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!
[MSN] [ICQ]
Bravox
Virtual Machine Man
[Avatar]

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 :


[Email] [MSN]
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"
[Email] [MSN]
Bravox
Virtual Machine Man
[Avatar]

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

[Email] [MSN]
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"
[Email] [MSN]
Bravox
Virtual Machine Man
[Avatar]

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

[Email] [MSN]
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"
[Email] [MSN]
Bravox
Virtual Machine Man
[Avatar]

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 !
[Email] [MSN]
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"
[Email] [MSN]
Bravox
Virtual Machine Man
[Avatar]

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