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?
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.
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?
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
}
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.