pessoal,
fiz um esquema de seguranca para meu sistema (que
eh baseado em jsp).
este esquema esta funcionando perfeitamente e estou
eu aqui neste momento agora passando para quem quiser.
eh logico q nao eh a solucao para autenticao, nem
eh o melhor codigo, nem o mais profissional , mas funcionou para o que eu
precisei :)
quem tiver alguma ideia de melhoras ou etc para q o
codigo fique mais robusto reply-me.
este esquema de seguranca utiliza sessions e
hashes:
na sessao eu estou colocando o id do usuario e o
tipo de usuario (administrador,usuario comum ,etc)
no banco de dados estou armazendo o hash da senha
do cara.
o esquema de autenticacao que fiz compara o hash q
esta no banco com o hash do usuario.
o esquema gera este hash para comparar com o que
estah no banco, de acordo com o id do usuario.
bom... o codigo precisa ser adaptado.
em anexo mando a pagina de login e a que faz a
validacao do login, cria a secao e redireciona o usuario para a pagina com o
perfil do usuario(admin, usuario , etc).
o codigo abaixo deve ser incluido em todas as
paginas q se quer proteger:
<%
// AQUI SE DEFINE A CONEXAO COM O BANCO DE DADOS.
MANDO DOIS EXEMPLOS DE CONEXAO: UM ATRAVES DO ORION
E OUTRA ATRAVES DO RESIN
/*
// Conexao com ORION
javax.naming.Context ctx = new javax.naming.InitialContext(); javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("jdbc/mare"); Connection con = ds.getConnection(); OU
// Conexao com RESIN Connection con = com.caucho.sql.DBPool.getPool("mare").getConnection(); */
%>
<%
// ***********############## P A G I N A R E S T R I T A USUARIO T I P O X ######################*********** // // ALGORITMO CRIADO POR [EMAIL PROTECTED] // - - - - - - - - - - - - - - - - - String sessao_idUsuario = new
String();
String sessao_nmUsuario = new String(); String sessao_idSessao = new String(); boolean loginSessao=false;
boolean continuar = false; session = request.getSession(false); if (session!=null) { sessao_idUsuario =
(String)session.getValue("idUser");
sessao_nmUsuario = (String)session.getValue("nome"); sessao_idSessao = session.getId(); if
((sessao_idUsuario!=null)&&(sessao_idSessao!=null)&&(sessao_nmUsuario!=null))
{ if ((sessao_idUsuario.length()>0)&&(sessao_idSessao.length()>0)&&(sessao_nmUsuario.length()>0)) { loginSessao=true; } } } // if session if (loginSessao)
{ // o usuario dever ter sido aprovado para usar o sistema >> fl_pendencia=n // a sessao dele deve bater com a sessao armazenada no banco // o id tambem deve bater com o id armazenado no banco query = "SELECT id_usuario FROM usuario WHERE
fl_pendencia='n' AND tp_usuario=1 "+
// O TIPO DE
USUARIO (TP_USUARIO) DEVE SER TROCADO DE ACORDO COM O TIPO DE
PAGINA
// TP= 1 NO MEU CASO SIGNIFICA QUE
O USUARIO EH ADMINISTRADOR, TP=3 USUARIO COMUM, TP=2
CONSULTOR
" AND id_usuario="+sessao_idUsuario+ " AND session_id='"+sessao_idSessao+"'"; rs= stmt.executeQuery(query); continuar = rs.next(); } //loginSessao
if (continuar) // o usuario pode usar a
pagina
{ // ################ F I M D O A L G O R I T M O D E A U T E N T I C A C A O D E P A G I N A ######################## %>
AQUI VAI O SEU CODIGO NORMAL , HTML , JSP ETC... EH
O CORPO DA PAGINA
E NO FINALZINHO DA PAGINA, ANTES DA TAG
</BODY>, VOCE DEVERA INSERIR O CODIGO ABAIXO:
<%
// #################################### FAZ PARTE DA AUTENTICACAO \/ } else { // o usuario nao pode usar a pagina %> <jsp:forward page="autenticacao_usuario.jsp" /> <% } // O FORWARDA ACIMA MANDA O CARA NAO AUTORIZADO PARA A PAGINA DE LOGIN DO SISTEMA // ################################# ATE AQUI /\ %> em anexo tambem mando uma pagina jsp que utiliza
este sistema.
|
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------