na verdade estou usando o pool connection do resin.
----- Original Message -----
From: "Luiz Bastos" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, July 26, 2001 12:55 AM
Subject: Re: [java-list] jsp : como saber se um usuario jah esta autenticado
em um sistema x?
> Ol�
>
> Voc� deve estar usando um objeto Connection p�blico. Quando o segundo
> usu�rio se conecta, mata a conex�o do promeiro.
>
> []s
> Luca
> ----- Original Message -----
> From: "jspdeveloper" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, July 25, 2001 10:30 AM
> Subject: [java-list] jsp : como saber se um usuario jah esta autenticado
em
> um sistema x?
>
>
> > Pessoal,
> >
> > meu esquema de autenticacao em uma pagina , com login e senha, armazena
na
> > sessao o identificador do usuario bem como outras informacoes
relevantes.
> Eu
> > tambem gravo o id da sessao do usuario no banco de dados para garantir
uma
> > certa seguranca.
> > Este meu sistema eh comum para varios usuarios. Eh um formulario comum a
> > todos.
> > Mas quando um usuario esta logado, e outro tenta se autenticar, este
> > consegue e o outro fica a ver navios. isto eh, ele eh desconectado do
> > sistema.
> >
> > eu pensei em criar uma variavel boolena para indicar que o usuario esta
> > conectado, mas caso o usuario saia sem efetuar logoff, esta variavel
iria
> > permanecer com o valor true.
> >
> > Alguem tem ideia de como fazer algo para que , quando um usuario
estiver
> > conectado e outro tentar se conectar, este receber uma mensagem de que
jah
> > existe um usuario usando o sistema.
> >
> > grato pela atencao.
> >
> >
> >
> >
> >
> >
> >
> > ------------------ login.jsp
> >
> >
> > <%@ page import="java.sql.*,java.util.*,java.security.*,sun.misc.*"
> > session="false"%>
> > <%
> >
> > /*
> > ESTA PAGINA NAO EXIGE QUE SEJA AUTENTICADA
> > ESTA PAGINA EXECUTA FUNCOES DE VALIDACAO QUE CRIAM OS DADOS
NECESSARIOS
> > PARA QUE AS PAGINAS POSTERIORES POSSAM SER USADAS ATRAVES DE
AUTENTICACAO
> > */
> >
> >
> > /*
> > a pagina de login (esta) coloca na sessao o tipo de usuario.
> > isto eh necessario para a criacao de menus personalizados para cada tipo
> de
> > usuario
> > */
> >
> > // Conexao com RESIN
> > Connection con =
> > com.caucho.sql.DBPool.getPool("xurumelasConnection").getConnection();
> > // >>>
> >
> > Statement stmt;
> > stmt=con.createStatement();
> > ResultSet rs = null;
> > String queryInsert= new String();
> > String query= new String();
> >
> > %>
> > <%
> >
> > String idUser = new String(); // id do usuario . sera utilizado pra
> > atualizar o banco de dados.
> > String nome = new String(); // nome do usuario. sera utilizado na sessao
> > para dar boas vindas para o usuario! :)
> > String login = new String();// email veio do form . o email eh o login
> name
> > do usuario
> > String senha = new String(); // senha que veio do form
> > String hashLocal = new String(); // hash(md5) da senha q veio do form
> > String hashDB = new String(); // hash armazenado no banco de dados. eh
> > utilizada para comparar com o hash gerado na autenticacao.
> > boolean multiusuario = false; // usuario nao eh multiusuario por default
> > Integer tipoTemp = null;
> > String tipoParaSessao = null; // tipo do usuario . importante para fazer
o
> > encaminhanto para o menu correto. eh obtida da col tp_usuario tabela
> usuario
> > int tipo = 0; // para ser usado nesta pagina. o tipo para sessao eh
porque
> > putValue da session soh aceita string
> > String sessionID = new String(); // session criada caso usuario seja
> > validado. sera incluida na coluna sessionID da tabela usuario
> >
> > // nota: a session sera sempre atualizada do banco de dados toda vez
que
> o
> > usuario tiver sucesso na autenticacao.
> >
> > // o valor inicial da sessionID no banco de dados eh nulo, pois na
> > aprovacao do pre-cadastro eh feita a validacao e insercao de todas as
> > colunas
> > // da tabela usuario.
> > // o hash armazenado na tabela usuario , foi inicialmente carregado
> atraves
> > de uma senha inicial que o sistema gerou quando efetuou a
> > // aprovacao do usuario
> >
> >
> > %>
> > <%
> > // parametros vindos do formulario da pagina formulario_login.jsp
> > login=request.getParameter("email");
> > senha=request.getParameter("senha");
> > %>
> > <%
> > // verifica se parametros sao validos
> >
> > boolean continuar = false;
> > boolean achouEmail = false;
> > boolean hashesIguais = false;
> >
> > if ( (login!=null)&&(senha!=null) )
> > {
> > if ( (login.length()>5)&&(senha.length()==8)) // o usuario digitou um
> > email e entrou com a senha com tamanho de 8 caracteres
> > {
> > continuar=true;
> > }
> > }
> >
> >
> >
> > if (continuar)
> > {
> > // verifica se email existe
> > // retorna hs_senha, id_usuario, nm_usuario e tp_usuario
> >
> > query = "select
> >
>
id_usuario,nome_do_usuario,hash_senha_do_usuario,tipo_de_usuario,multiusuari
> > o_usuario from usuario where situacao_do_usuario='n' AND
> > email_do_usuario='"+login+"'"; //verifica se email existe
> >
> > rs= stmt.executeQuery(query); //pesquisa por email do usuario
> > #####################
> > achouEmail = rs.next();
> > if (achouEmail)
> > {
> >
> > idUser = rs.getString("id_usuario");
> > nome = rs.getString("nome_do_usuario");
> > hashDB = rs.getString("hash_senha_do_usuario");
> > tipoTemp = Integer.valueOf(rs.getString("tipo_de_usuario"));
> > multiusuario = rs.getBoolean("multiusuario_usuario"); // 1=true,
> 0=false
> > tipo = tipoTemp.intValue();
> > tipoParaSessao = tipoTemp.toString();
> >
> > // gera hash da senha q veio do form
> > byte[] inputBytes = senha.getBytes("UTF8");
> > MessageDigest md5 = MessageDigest.getInstance("MD5");
> >
> > md5.update(inputBytes);
> > byte[] digest = md5.digest();
> >
> > BASE64Encoder encoder = new BASE64Encoder();
> > hashLocal = encoder.encode(digest);
> >
> >
> > // compara os hashes
> > if ( hashLocal.compareTo(hashDB)==0 )
> > {
> > //hashes sao iguais
> > hashesIguais =true;
> > }
> > }
> >
> >
> > %>
> > <% } // if continuar
> > else
> > {
> >
> > con.close();
> >
> > %>
> > <jsp:forward page="formulario_loginErro.jsp" />
> > <% } // else continuar%>
> > <html>
> >
> > <head>
> > <title>sistema xyz</title>
> > <meta http-equiv="pragma" content="no-cache"><meta
> > http-equiv="Cache-Control" content="no-cache">
> > <meta http-equiv="expires" content="sat, 04 dec 1993 21:29:02 gmt">
> > <meta name="GENERATOR" content="Microsoft FrontPage 3.0">
> > </head>
> >
> > <body>
> >
> > <p align="center"><font face="Arial" size="3" color="#FF0000">Validacao
de
> > login e senha
> > do usuario</font></p>
> >
> > <p align="center"><font face="Arial" size="3" color="#FF0000">Esta
p�gina
> > cria a sessao
> > do usuario e encaminha para a sua pagina de menu</font></p>
> >
> > <p align="center"><font face="Arial" size="3"
> > color="#FF0000"><%=hashesIguais%></font></p>
> > <% if (hashesIguais) //hashesIguais
> > {
> >
> > // cria sessao para usuario e armazena no banco de dados na tabela
> usuario
> > de acordo com o id usuario
> > HttpSession session = request.getSession(true);
> > session.putValue("idUser",idUser);
> > session.putValue("tipo",tipoParaSessao);
> > session.putValue("nome",nome);
> >
> >
> > query = "UPDATE usuario SET "+
> > " sessao_do_usuario='"+session.getId()+"' "+ //valor da session id
> em
> > string
> > " where id_usuario=" + idUser;
> >
> > stmt.executeUpdate(query);
> >
> >
> >
> >
> > %>
> > <%
> > // redireciona usuario para menu admin,consultor ou usuario
> >
> >
> > switch(tipo)
> > {
> > case 1: //admin
> > %>
> > <jsp:forward page="menu_admin.jsp" />
> > <% break;
> > case 2://consultor
> > %>
> > <jsp:forward page="menu_consultor.jsp" />
> > <% break;
> > case 3://usuario informante
> > %>
> > <% if (multiusuario)
> > {
> > %>
> > <jsp:forward page="menu_multiusuario.jsp" />
> > <%
> > }
> > else
> > {
> > %>
> > <jsp:forward page="menu_usuario.jsp" />
> > <%
> > }
> > %>
> > <% break;
> >
> > default: //pagina login
> > %>
> > <jsp:forward page="formulario_loginErro.jsp" />
> > <%
> > } //switch
> > %>
> >
> > <p><%
> >
> >
> > } // if hashes iguais
> > else
> > {
> > con.close();
> >
> > %> <jsp:forward page="formulario_loginErro.jsp" /> <%
> > } // else hashes
> >
> > con.close();
> >
> > %> </p>
> >
> > <p> </p>
> > <% if (!achouEmail) {
> > %>
> > <jsp:forward page="formulario_loginErro.jsp" />
> > <%} // if achouemail
> > %>
> > </body>
> > </html>
> >
> >
> >
> >
> >
> > ------------------------------ 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]
>
> -------------------------------------------------------------------------
> >
> >
>
>
> ------------------------------ 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]
> -------------------------------------------------------------------------
>
------------------------------ 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]
-------------------------------------------------------------------------