Non dovete utilizzare la classe Hibernate che mappa la tabella sul DB. Dovete utilizzare un oggetto che rappresenta l'utente loggato e salvarlo in sessione. Quello che chiedete può essere fatto nel modo seguente:


Pagina login.jsp:

Codice PHP:
<%@ page contentType="text/html"%>
<%@ 
taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ 
taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<
f:view>
    <
html>
        <
head><title>JSF Simple Login Example</title></head>

        <
body>
            <
h:form>
                <
table>
                    <
tr>
                        <
td><h:outputText value "Username: " /></td>
                        <
td><h:inputText id="loginname" value="#{SimpleLogin.loginname}" /></td>
                    </
tr>
                    <
tr>
                        <
td><h:outputText value "Password: " /></td>
                        <
td><h:inputSecret id"password" value="#{SimpleLogin.password}" /></td>
                    </
tr>
                    <
tr>
                        <
td></td>
                        <
td><h:commandButton value "Login" action="#{SimpleLogin.CheckValidUser}" /></td>
                    </
tr>
                </
table>
            </
h:form>
        </
body>
    </
html>
</
f:view
dove SimpleLogin è la classe che utilizzate per verificare la correttezza del login. Ad esempio:

Codice PHP:
import java.util.Map;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

public class 
SimpleLogin{
    
String loginname;
    
String password;

    public 
SimpleLogin(){}

    public 
String getLoginname(){
        return 
loginname;
    }

    public 
void setLoginname(String loginname){
        
this.loginname loginname;
    }

    public 
String getPassword(){
        return 
password;
    }

    public 
void setPassword(String password){
        
this.password password;
    }

    public 
String CheckValidUser(){
        
boolean loginOK=false;
        
/**
         * Verifichi sul DB l'esistenza dell'username, cambiando quindi lo stato della variabile loginOK. Qui puoi usare le classi hibernate che ti servono
         */
        
        
if(loginOK){
            
            
LoggedUser loggedUser = new LoggedUser();
            
loggedUser.setUsername(loginname);
            
//salvo l'oggetto in sessione
            
FacesContext ctx FacesContext.getCurrentInstance();
            
ExternalContext ectx ctx.getExternalContext();
            
Map<String,Objectectx.getSessionMap();
            
m.put("LoggedUserInSession",loggedUser);
            return 
"success";
        }
        else{
            return 
"fail";
        }
    }

Se la login è corretta, crei un oggetto LoggedUser che contiene i dati dell'utente appena loggato. Settati i valori metti questo oggetto in sessione, in modo da poterlo recuperare ovunque ti serva. La classe LoggedUser sarà una cosa del genere:

Codice PHP:
public class LoggedUser {

    private 
String username;

    
/** Creates a new instance of LoggedUser */
    
public LoggedUser() {
    }

    
/**
     * @return the username
     */
    
public String getUsername() {
        return 
username;
    }

    
/**
     * @param username the username to set
     */
    
public void setUsername(String username) {
        
this.username username;
    }

A questo punto non resta che creare la pagina che viene visualizzata in caso di corretto login:

Pagina welcome.jsp
Codice PHP:
<%@ page contentType="text/html"%>
<%@ 
taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ 
taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<
f:view>
    <
html>
        <
head><title>JSF Simple Login Example</title></head>

        <
body>
            <
h:form>
                <
table>
                    <
tr>
                        <
td><h:outputText value ="Benvenuto, #{sessionScope.LoggedUserInSession.username}" /></td>
                    </
tr>
                </
table>
            </
h:form>
        </
body>
    </
html>
</
f:view
Questo è il file faces-config.xml:

Codice PHP:
<?xml version='1.0' encoding='UTF-8'?>



<faces-config version="1.2" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd[/url]">
    <managed-bean>
        <managed-bean-name>SimpleLogin</managed-bean-name>
        <managed-bean-class>SimpleLogin</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <navigation-rule>
        <from-view-id>/login.jsp</from-view-id>
        <navigation-case>
            <from-action>#{SimpleLogin.CheckValidUser}</from-action>
            <from-outcome>success</from-outcome>
            <to-view-id>/welcome.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-action>#{SimpleLogin.CheckValidUser}</from-action>
            <from-outcome>fail</from-outcome>
            <to-view-id>/login.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>
Buon divertimento