Login e senha com JSF + Primefaces + Hibernate

Olá Pessoal. Sou novo em programação e estou iniciando no mundo JAVA.
atualmente fiz uma aplicação de cadastro de usuários.
Porém preciso criar um sistema de login e senha através de sessão.
Onde só terá acesso a aplicação de cadastro um usuário
autenticado, através de consultas realizadas no banco de dados.
alguém poderia me ajudar de como posso fazer para criar
um sistema de Login e Senha?

login.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>

        <link rel="stylesheet" href="resources/css/estilos.css"/>
        <title>Tela de Login</title>

    </h:head>
    <h:body>

        <p:commandButton value="&nbsp;Realizar o Login" oncomplete="dlgNovo.show();" image="icon-add"/>      

        <!-- Formulário para inserir Usuário e Senha -->

        <h:form id="formUsuario">

            <p:dialog header="Realizar o Login" widgetVar="dlgNovo" resizable="false" id="dlgNovo"  
                      showEffect="fade" hideEffect="explode" modal="true">  

                <p:growl id="growl" showDetail="true" sticky="true" />   

                <h:panelGrid id="pgNovo" columns="2" cellpadding="4" style="margin:0 auto;">  

                    <h:outputText value="CPF" />  
                    <p:inputText value="#{loginBean.login}"/>
                    <h:outputText value="Senha" />  
                    <p:inputText value="#{loginBean.login}"/>

                </h:panelGrid>
                
                <p:separator />

                <p:commandButton value="&nbsp;Logar" actionListener="#{loginBean.logar(actionEvent)}"/>
                
            </p:dialog> 
        </h:form>

    </h:body>
</html>

LoginDao.java

package com.grupo.dao;

import com.grupo.model.Login;
import java.util.List;

/**
 *
 * @author Michael
 */
public interface LoginDao {
    
    public void inserir(Login login);
    public void atualiza(Login login);
    public List<Login> buscarCpf();
       
    
}

LoginDaoImpl.java

package com.grupo.dao.impl;

import com.grupo.dao.LoginDao;
import com.grupo.model.Login;
import com.grupo.util.HibernateUtil;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Michael
 */
public class LoginDaoImpl implements LoginDao {

    @Override
    public void inserir(Login login) {
        Session session = HibernateUtil.getSessionFactory().openSession();

        try {
            session.beginTransaction();
            session.save(login);
            session.beginTransaction().commit();
        } catch (Exception e) {
            System.out.println("Erro ao Inserir" + e.getMessage());
            session.beginTransaction().rollback();
        }

    }

    @Override
    public void atualiza(Login login) {
        Session session = HibernateUtil.getSessionFactory().openSession();

        try {
            session.beginTransaction();
            session.update(login);
            session.beginTransaction().commit();
        } catch (Exception e) {
            System.out.println("Erro ao Atualizar" + e.getMessage());
            session.beginTransaction().rollback();
        }
    }

    @Override
    public List<Login> buscarCpf() {
        Session session = HibernateUtil.getSessionFactory().openSession();
        return session.createQuery("from login").list();
    }

    
}

LoginBen.java

package com.grupo.bean;

import com.grupo.dao.LoginDao;
import com.grupo.dao.impl.LoginDaoImpl;
import com.grupo.model.Login;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;



@ManagedBean (name="loginBean")
@SessionScoped
public class LoginBean {

   private Login login;
   private List<Login> logins;   
   
    public LoginBean() {
    }

    
    public void logar(ActionEvent actionEvent){                      
        
    }
    
    public Login getLogin() {
        return login;
    }
  
    public void setLogin(Login login) {
        this.login = login;
    }

    public List<Login> getLogins() {
        LoginDao loginDao = new LoginDaoImpl();
        logins = loginDao.buscarCpf();
        return logins;
    }
    
}

Voce esta com dificuldade aonde ?

Uma coisa que notei é que no seu loginBean voce tem um objeto login do tipo Login, que voce vinculou com os inputText na sua tela de login isso é errado voce tem que vincular com esse tipo de componenete atributos do tipo String, pois o inputText não vai saber escrever objetos de outro tipo a não ser string…

entaum digamos que seu objeto Login tem as propriedades usuario e senha e voce varia assim


 &lt;h:outputText value="CPF" /&gt;    
                    &lt;p:inputText value="#{loginBean.login.usuario}"/&gt;  
                    &lt;h:outputText value="Senha" /&gt;    
                    &lt;p:inputText value="#{loginBean.login.senha}"/&gt;

para senha use inputSecret…

  1. NÃO ESCREVA ASSIM. PARECE QUE ESTÁ GRITANDO.
  2. Se você é novo no Java, por que não estuda a base do java primeiro?
  3. Sabia que JSF é um Servlet? Você já estudou servlets?

Mas se você já tem esse conhecimento básico, na minha assinatura tem dois links para aplicações contendo login com jsf.

Amigo, concordo com o colega, você deveria ler/estudar um pouco mais sobre a linguagem, java, visto que você como o CristianPalmaSola10 disse, vinculou o seu inputText a um objeto do tipo Login, era melhor você aprender de baixo primeiro.

DICA:
O bom mesmo amigo, é na senha você utilizar o <p:password> do primefaces, que conta com inumeros recursos, inclusive com o match mode para comparar se a senha e a confirmação da mesma são iguais.

OK. valeu pelas dicas.
Vou adota-las da melhor forma o possível.

Mais nesse exemplo que TENTEI FAZER hehe,
Alguém poderia me dar uma forma prática
de resolver o meu problema?

Por favor, não ABUSE DO CAPS LOCK no título do tópico.