Estou precisando fazer um controle de acesso, em JSP, que controle páginas JSP… onde eu crie os usuários e informe quais as aplicações, páginas, links, ele tem acesso. Isso por que há hirarquicamente a necessidade de diferenciar os usuários.
Alguém já fez algo parecido? Como vocês mais experientes fazem esse controle de acesso. Quando mais simples melhor, por que ainda tenho poucos conhecimentos na linguagem.
Eu pensei, em criar 3 tabelas (usuarios, aplicação e acesso) … mas de link em link tenho que verificar se o usuário tem acesso e vou no banco de dados verificar isso, e isso compromete a velocidade.
Vc deve carregar todas as permissoes do usuario e armazenar na sessão e não ficar indo no banco de dados toda vez ,pois isso pode compremeter a performance da aplicação,utilize filtros para validar ou não se o usuario tem acesso a determinada pagina.
Crie uma tabela que contenha usuário, aplicação, tipo de acesso e as permições desta aplicação caso exista as funções Insert, Update e Delete. E assim como o dsrmf você cria as variáveis de sessão que irão armazenar as permições que este usuário possue.
Ps.: Se não tiver sido claro, me responda que te mostro um exemplo.
Achei a ideia de todo mundo legal… era isso mesmo. Só nao sei como armazenar numa sessao… e depois usar e comparar o que tiver nela contido? como faria isso?
Ps.: Nome_Variavel é o nome que você querdar a sua váriável;
Valor_Variavel é valor que está variável vai receber, lembrando sempre que deve ser um valor String[/code]
[color=“red”]-> Validando a variável de sessão[/color]
Seguinte… parece que na sessao assim dá certo mesmo…
Porém… um usuário que possui um MENU com 20 opções por exemplo… como vai ser criada os valores na sessão? e principalmente como eu vou recuperar os valores… por que assim…
se eu colocar dentro da variável de sessao: MENU1, MENU2, MENU3, MENU4 … como recupero depois pra comprarar?
Existe alguma forma, que após o usuário se logar e receber suas opçoes de menu (sessao válida)… ele nao consiga digitar em outra janela um outro link, que ele nao tenha acesso (http://localhost:8080/naotenhoaceesso.jsp .
Quanto a sua primeira pergunta, cada campo do menu que você listar na tela você cria uma sessão com o nome do campo e com o atributo que você quiser. Exemplo:
for (int i=0; i<Retorno; i++){
session.setAttribute("Nome_Variavel", "Valor_Variavel");
}
Ou seja, serão criadas quantas sessões forem necessárias.
Para a segunda pergunta, você pode validar no inicio de cada tela se o usuário está logado ou não. Segue um exemplo de como fazemos aqui na empresa:
if (session.getAttribute("Login") == null){
response.sendRedirect("v_login?msg=Usuário, favor efetuar seu login.");
}
else{
if (session.getAttribute("Usuario_Logado") == null){
response.sendRedirect("v_login?msg=Usuário, favor efetuar seu login.");
}
else{
seu código é inserido dentro destas tag's.
}
Faça um teste e caso não consiga me comunique que tentarei fazer uns testes aqui.
não entendi, a sessão é para cada usuário certo? então cada vez que uma pessoa abrir sessão vou ter que listar todas as permissões? não teria como eu manter essa lista na aplicação?