[Ajuda]Login

Boa tarde/Noite pessoal, creio que seja uma pergunta simples mas gostaria da ajuda de vcs. A questão é mais na logica do login. Gostaria que meu login tivesse como campos: Login e Senha.

Eu tenho a minha classe Pessoa:

public class Pessoa {
	
	private String nome;
	private int codigo;
	
	Date date = new Date();
	
	public Pessoa(String nome, int codigo) {
		this.nome = nome;
		this. codigo = codigo;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this. codigo = codigo;
	}
}

Com a classe Pessoa eu poderia fazer oq eu to querendo? No caso eu teria que ter esses dois novos atributos como: Login e Senha? Caso nao seja assim, eu preciso criar uma outra classe como Usuário para fazer o login ou somente mesmo com a Pessoa (com esses novos atributos) eu poderia fazer esse login?

Lembrando que meu sistema é desktop!

[]'s
Henrique.

Boa tarde, cara depende de como são os requisitos do que você está querendo fazer. Se for vinculado a um banco de dados, pelo menos particularmente, eu divido bastante em dois objetos : Conta e Pessoa. Mesmo não sendo, também acho importante uma boa distinção dos objetos para que no futuro caso você precise fazer alteração só em atributos dignos somente do objeto Pessoa seja de fácil acesso. Mas isso vai de cada pessoa, como também pode por só em pessoa. Qualquer coisa é só perguntar.

Cara, já me deparei com essa dúvída, pois tinha que autenticar e autorizar o usuario e incluir algumas informacoes na HttpSession, por isso criei a classe Login, abaixo:

/**
 *
 * @author vinicius
 */
public class Login {
    private final String email;
    private final String userName;
    private final String userGroup;
    
    public Login(String userName, String email){
        this.email = email;
        this.userName = userName;
        userGroup = null;
        
    }
    
    public Login(String userName, String email, String userGroup){
        this.email = email;
        this.userGroup = userGroup;
        this.userName = userName;
    }
    
    public String getEmail() {
        return email;
    }

    public String getUserName() {
        return userName;
    }

   public String getUserGroup() {
        return userGroup;
    }
      
}

e para inserir o Login na sessao:

Usuario usuario = //verificando na base se existe um usuario com login/senha 
if(usuario != null){
   request.getSession().setAttribute("login", new Login(usuario.getNome(), usuario.getEmail(), usuario.getGrupo().getDescricao()));
}

Veja que por uma questao de seguranca NAO eu nao devo manter a senha nessa classe. Entao encapsulei apenas o username, usergroup e email, que eram as informcoes do meu interesse.

Ate mais

Acho que meu problema ainda nao foi entendido, creio que posso não ter sido claro! Novamente só lembrando que meu sistema é DESKTOP.
E a minha dúvida maior é que por exemplo eu tenho na minha classe Pessoa nome e codigo, como já foi mostrada mais acima!

Minha tela de Login vai pedir: Username e Password.

Então no caso deveria colocar dois novos atributos na classe Pessoa que ela ficaria:

public class Pessoa {
	
	private String nome;
	private int codigo;
        [b]private String username;
        private String password;[/b]
		
	public Pessoa(String nome, int codigo, String username, String password) {
		this.nome = nome;
		this. codigo = codigo;
                [b]this.username = username;
                this.password = password;[/b]
	}
        //gets e sets
}

Ou criaria uma outra classe para que o meu Objeto pessoa pudesse acessar o sistema? Se tiver que criar essa nova classe, como seria?

[]'s
Henrique.

Voce esta correto! Grande parte dos sistemas tem uma tabela chamada USUARIO, que no seu caso deve ser PESSOA. Cada Pessoa, tem um username e um login, sendo que o username deve ser unico! Portanto, basta voce usar sua camada responsavel por recuperar os dados da base e conflitar com o que o usuario digitou! Veja como eu faco:

//o usuario digitou login/senha
String login == //entraga do usuario
String senha == //entraga do usuario

//minha classe que encapsula toda a complexidade de recuperar e persistir os dados no sistema
UsuarioDAO dao = new UsuarioDAO();

//pesquisa a existencia de um usuario do sistema com o mesmo login/senha
Usuario usuario = dao.pesquisarUsuario(login, senha);

if(usuario != null){
//seu usuario existe na base, portato esta autenticado no sistema
}
else{
//seu usuario NAO existe na base, portato NAO esta autenticado no sistema
}

Imagino que vc fara com sua Classe Pessoa!

Ate mais

Então no me caso a classe Pessoa ficará assim:

public class Pessoa {
	
	private String nome;
	private int codigo;
        [b]private String username;
        private String password;[/b]
		
	public Pessoa(String nome, int codigo, String username, String password) {
		this.nome = nome;
		this. codigo = codigo;
                [b]this.username = username;
                this.password = password;[/b]
	}
        //gets e sets
}

A minha classe Pessoa com esses 4 atributos tá certa ou tenho que somente ter os atributos login e senha como vc fez? Acho que é somente essa pergunta que tá faltando pra tirar todas as minhas duvidas em relação aos atributos que eu acabei de citar.

[]'s
Henrique.

Veja como esta a minha classe Usuario e suas duvidas estarao resolvidas…rsrsr

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.vinicius.locadora.modelo.bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;


public class Usuario implements Serializable {
    private Integer id;
    private String nome;
    private String email;
    private String endereco;
    private String telefone;
    private Date dataInscricao;
    private Date dataUltimaLocacao;
    private Integer locacoes;
    private Double pendencia;
    private String login;
    private String senha;
    private Grupo grupo;
    private CategoriaUsuario categoriaUsuario;
    private Usuario usuarioTitular;
    private Collection<Promocao> listaPromocao = new ArrayList<Promocao>();

    public Usuario() {
    }

    public Usuario(Integer id) {
        this.id = id;
    }

    public Usuario(Integer id, String nome, String senha) {
        this.id = id;
        this.nome = nome;
        this.senha = senha;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Grupo getGrupo() {
        return grupo;
    }

    public void setGrupo(Grupo grupo) {
        this.grupo = grupo;
    }

    
    public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public Date getDataInscricao() {
		return dataInscricao;
	}

	public void setDataInscricao(Date dataInscricao) {
		this.dataInscricao = dataInscricao;
	}

	public Date getDataUltimaLocacao() {
		return dataUltimaLocacao;
	}

	public void setDataUltimaLocacao(Date dataUltimaLocacao) {
		this.dataUltimaLocacao = dataUltimaLocacao;
	}

	public Integer getLocacoes() {
		return locacoes;
	}

	public void setLocacoes(Integer locacoes) {
		this.locacoes = locacoes;
	}

	public Double getPendencia() {
		return pendencia;
	}

	public void setPendencia(Double pendencia) {
		this.pendencia = pendencia;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public CategoriaUsuario getCategoriaUsuario() {
		return categoriaUsuario;
	}

	public void setCategoriaUsuario(CategoriaUsuario categoriaUsuario) {
		this.categoriaUsuario = categoriaUsuario;
	}

	public Usuario getUsuarioTitular() {
		return usuarioTitular;
	}

	public void setUsuarioTitular(Usuario usuarioTitular) {
		this.usuarioTitular = usuarioTitular;
	}

	public Collection<Promocao> getListaPromocao() {
		return listaPromocao;
	}

	public void setListaPromocao(Collection<Promocao> listaPromocao) {
		this.listaPromocao = listaPromocao;
	}

	public int hashCode() {
               //TODO
    }

    
    public boolean equals(Object object) {
              //TODO
    }

    
    public String toString() {
       //TODO
    }

}

Minha classe Usuario tem inclusive login e senha…rrsr!
O que vc esta usando para persistir seus beans?

ate mais

Eu também costumo fazer que nem o Caio, algo desse tipo…

Muito porcamente eu faço algo desse tipo…

[code]public class Pessoa {
private String nome = null;
private String login = null;
private char[] senha = null;
private Sessao sessao = null;

public void fazerLogin() throws ErroDeLoginException{
	sessao = new Sessao();
	sessao.abreSessao(login, senha);
}

}[/code]

e também

[code]public class Sessao {
private Date dataLogin = null;

public void abreSessao(String login, char[] senha) throws ErroDeLoginException{
	if (this.validaLoginSenha(login, senha)){
		throw new ErroDeLoginException("Erro!");
	}
	
	this.dataLogin = new Date();
}

public boolean validaLoginSenha(String login, char[] senha){
	return false;
}

}[/code]

:smiley: