Não entendi porque você utiliza a clausula LIKE na busca pelo nome do usuário
 
rs = stmtCheckUser.executeQuery("SELECT p FROM Pessoal AS p WHERE
p.Username like '%"+user+"%'");
e faz uma busca através do resultado pela password.
 
Isto que você fez, faz com que traga os usuários que possuam aquele conjunto de caracteres.
 
Por exemplo:
Nome       Password
Almeida    123
Alex         1234
 
 
Se eu tentar logar com o usuário de nome "a" e password "123" ele vai conseguir entrar, pois o resultado da busca será:
Nome       Password
Almeida    123
Alex         1234
e a password será conincidente com a do Almeida.
 
-----Mensagem Original-----
De: Romulo Oliveira Souza
Enviado: Wednesday, May 29, 2002 3:20 PM
Para: [EMAIL PROTECTED]
Assunto: [java-list] collection
 
Olá pessoal,

Estou com o probleminha com collection na minha aplicação
que é o seguinte (no caso de login):
- Eu consigo logar com apenas alguns usuários cadastrados, os outros não
longam.
- Eu consigo logar com um usuário que já foi excluido da base de dados.

Estou utilizando ejb de sessao e de entidade que seguem abaixo. Alguém
poderia me ajudar??? Muito obrigado.


=============================== PessoalRemote
================================
import java.rmi.*;
import javax.ejb.*;
import java.lang.*;

public interface PessoalRemote extends EJBObject {
  public Integer getId() throws RemoteException;
  public void setId(Integer id) throws RemoteException;

  public String getUsername() throws RemoteException;
  public void setUsername(String username) throws RemoteException;

  public String getPassword() throws RemoteException;
  public void setPassword(String password) throws RemoteException;

  public String getNome() throws RemoteException;
  public void setNome(String nome) throws RemoteException;

  public String getEndereco() throws RemoteException;
  public void setEndereco(String endereco) throws RemoteException;

  public String getCidade() throws RemoteException;
  public void setCidade(String cidade) throws RemoteException;

  public void Grava() throws RemoteException;

  public void LogIn(String user) throws RemoteException;
}

================================ PessoalBean =============================
...
...
/******************************************************************************
*              Método findByUsername(String username).

******************************************************************************/
  public Collection ejbfindByUsername(String user) throws RemoteException,
FinderException {
    try
    {
      Conecta();
      if (rs != null) rs.close();
      Statement stmtCheckUser = PessoalBean.con.createStatement();
      rs = stmtCheckUser.executeQuery("SELECT p FROM Pessoal AS p WHERE
p.Username like '%"+user+"%'");
      if (rs == null){System.out.println("o rs não pegou nada!!!");}
    }
    catch (Exception e)
  { System.err.println ("Falha criando o rs no CheckUser"); }

    try
    {
      if (rs != null)
      {
        LinkedList lista = new LinkedList();
        if (rs.next()){
          PessoalRemote obj = null;
          obj.setId(new Integer(rs.getInt("Id")));
          obj.setUsername(rs.getString("Username"));
          obj.setPassword(rs.getString("Password"));
          obj.setNome(rs.getString("Nome"));
          obj.setEndereco(rs.getString("Endereco"));
          obj.setCidade(rs.getString("Cidade"));

          lista.add(obj);
        }
        return lista;
      }
    }
    catch (Exception e)
  { System.err.println ("Falha recuperando os dados Login2 e Password2"); }
  return null;
  }

========================== SessaoBean ==========================
...
...
/*****************************************************************************
   * Método LogIn. Recebe o username de usuário e se ele estiver
cadastrado,
   * retorna 'true', caso contrário, retorna 'false'.

****************************************************************************/
  public boolean LogIn (String username, String password) throws
RemoteException {
    PessoalHome home = (PessoalHome) getHome("Pessoal-ejb",
PessoalHome.class);
    try {
      Collection colecao = home.findByUsername(username);
      Iterator i = colecao.iterator();
      PessoalRemote remote = null;
      if (i.hasNext()) {
        remote = (PessoalRemote)i.next();
        if (remote.getPassword().trim().equals(password))
          return true;
      }
    }
    catch(Exception e) {
      System.err.println ("&&&&&&&&&&&&&&&& ERRO EM 'SessaoBean.LogIn'!!!
&&&&&&&&&&&&&&&");
      System.out.println ("===> DESCRICAO: " + e);
      System.err.println ("&&&&&&&&&&&&&&&&&&&&&&&& FIM DO ERRO
&&&&&&&&&&&&&&&&&&&&&&&&&");
    }
    return false;
  }



------------------------------ 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
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------



Aproveite melhor a Web. Faça o download GRÁTIS do MSN Explorer : http://explorer.msn.com.br/intl.asp#po

Reply via email to