0
Good morning guys, I am seizing Java web but my login screen is not logging in and not giving error signal when clicking enter.
Working class
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.br.CPF;
@Entity
@Table(name = "tb_funcionarios")
@NamedQueries({
@NamedQuery(name = "Funcionario.listar", query = "SELECT funcionario FROM Funcionario funcionario" ),
@NamedQuery(name = "Funcionario.buscarPorCodigo", query = "SELECT funcionario FROM Funcionario funcionario WHERE funcionario.codigo = :codigo" ),
@NamedQuery(name = "Funcionario.logar", query = "SELECT funcionario FROM Funcionario funcionario WHERE funcionario.cpf = :cpf AND funcionario.senha = :senha")
})
public class Funcionario {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
@Column(name = "fun_codigo")
private Long codigo;
@NotEmpty(message = "Insira o Nome")
@Column(name = "fun_nome", length = 50, nullable = false)
private String nome;
@CPF(message = "CPF Incorreto")
@Column(name = "fun_cpf", length = 14, nullable = false, unique = true)
private String cpf;
@NotEmpty(message = "Insira a Senha")
@Size(min = 5, max = 15, message = "Sua senha deve conter de 5 a 15 caracteres")
@Column(name = "fun_senha", length = 50, nullable = false)
private String senha;
@NotEmpty(message = "Insira um cargo")
@Column(name = "fun_funcao", length = 50, nullable = false)
private String funcao;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getFuncao() {
return funcao;
}
public void setFuncao(String funcao) {
this.funcao = funcao;
}
@Override
public String toString() {
return "Funcionario [codigo=" + codigo + ", nome=" + nome + ", cpf=" + cpf + ", senha=" + senha + ", funcao="
+ funcao + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Funcionario other = (Funcionario) obj;
if (codigo == null) {
if (other.codigo != null)
return false;
} else if (!codigo.equals(other.codigo))
return false;
return true;
}
}
Class Employees Dao
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.com.Vendas.domain.Funcionario;
import br.com.Vendas.util.HibernateUtil;
public class FuncionariosDAO {
public void salvar(Funcionario funcionario) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction(); // abrindo a transação
sessao.save(funcionario);
transacao.commit(); // confirmando a transação
} catch (RuntimeException ex) {
if (transacao != null) {
transacao.rollback(); // desfaz a transação
}
}
finally {
sessao.close();
}
}
@SuppressWarnings("unchecked")
public List<Funcionario> listar() {
Session sessao = HibernateUtil.getSessionFactory().openSession();
List<Funcionario> funcionario = null;
try {
Query consulta = sessao.getNamedQuery("Funcionario.listar");
funcionario = consulta.list();
} catch (RuntimeException ex) {
throw ex;
}
finally {
sessao.close();
}
return funcionario;
}
public Funcionario buscarPorCodigo(Long codigo) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Funcionario funcionario = null;
try {
Query consulta = sessao.getNamedQuery("Funcionario.buscarPorCodigo");
consulta.setLong("codigo", codigo);
funcionario = (Funcionario) consulta.uniqueResult();
} catch (RuntimeException ex) {
throw ex;
}
finally {
sessao.close();
}
return funcionario;
}
public void excluir(Funcionario funcionario) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction(); // abrindo a transação
sessao.delete(funcionario);
transacao.commit(); // confirmando a transação
} catch (RuntimeException ex) {
if (transacao != null) {
transacao.rollback(); // desfaz a transação
}
}
finally {
sessao.close();
}
}
public Funcionario autenticar(String cpf, String senha) {
// Cria a sessão
Session sessao = HibernateUtil.getSessionFactory().openSession();
Funcionario funcionario = null;
try {
// Executa a query de consulta
Query consulta = sessao.getNamedQuery("Funcionario.logar");
// Recebe os dados informados
consulta.setString("cpf", cpf);
consulta.setString("senha", senha);
// Cria consulta do funcionário
funcionario = (Funcionario) consulta.uniqueResult();
} catch (RuntimeException ex) {
throw ex;
} finally {
sessao.close();
}
return funcionario;
}
public void editar(Funcionario funcionario) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction(); // abrindo a transação
sessao.update(funcionario);
transacao.commit(); // confirmando a transação
} catch (RuntimeException ex) {
if (transacao != null) {
transacao.rollback(); // desfaz a transação
}
}
finally {
sessao.close();
}
}
}
Class Authentication Bean
import java.io.IOException;
import javax.faces.context.FacesContext;
import org.apache.commons.codec.digest.DigestUtils;
import org.omnifaces.util.Faces;
import org.omnifaces.util.Messages;
import br.com.Vendas.DAO.FuncionariosDAO;
import br.com.Vendas.domain.Funcionario;
public class AutenticarBean {
Funcionario funcionarioLogado = new Funcionario();
public void autenticar() {
try {
FuncionariosDAO funcionarioDAO = new FuncionariosDAO();
// Recebe login e senha do usuário e chama método DAO para autenticar
funcionarioLogado = funcionarioDAO.autenticar(funcionarioLogado.getCpf(),
DigestUtils.md5Hex(funcionarioLogado.getSenha()));
// Verifica se o funcionário é nulo ou diferente
if (funcionarioLogado == null) {
Messages.addGlobalError("Usuário ou senha invalida");
} else {
// Redireciona para página principal após autenticar o funcionário.
FacesContext.getCurrentInstance().getExternalContext().redirect("principal.xhtml");
}
} catch (IOException erro) {
erro.printStackTrace();
Messages.addGlobalError(erro.getMessage());
}
}
}
Authentication.xhtml Authentication
<p:dialog header="Autenticação" closable="false" draggable="false"
resizable="false" modal="true" visible="true">
<h:form>
<h:panelGrid columns="2">
<p:outputLabel for="cpf" value="CPF:" />
<p:inputMask id="cpf" mask="999.999.999-99" size="20"
required="true" requiredMessage="O campo CPF é obrigatório"
value="#{MBFuncionarios.funcionario.cpf}" />
<p:outputLabel for="senha" value="Senha:" />
<p:password id="senha" maxlength="15" size="20" required="true"
requiredMessage="O campo Senha é obrigatório"
value="#{MBFuncionarios.funcionario.senha}" />
</h:panelGrid>
<h:panelGrid columns="1">
<p:commandButton value="Entrar" update=":mensagem"
actionListener="#{autenticacaoBean.autenticar}" />
</h:panelGrid>
</h:form>
</p:dialog>
Where the authenticator is mapped?
– Filipe L. Constante
I don’t know if I mapped correctly, where do I see ? in web.xml or in Hibernate.cfg.xml ?
– Jackson Felipe Magnabosco