Validar login pelo tipo de usuario com Hibernate e JSF

Oi gente, tudo bem,

tenho um sistema q estou desenvolvendo usando hibernate e jsf, agora preciso criar um login baseado na tabela Usuario, mas preciso capturar o tipo deste usuario para permitir que ele acesse determinadas paginas e outras nao

como posso fazer essa validação de usuario usando hibernate

eu uso isso atualmente para fazer o login

public String validarUsuario() {

            Criteria c = sessao.createCriteria(Usuario.class);
            Criterion _login = Restrictions.eq("usu_nome", getUsu_nome());
            c.add(_login);
            Criterion _senha = Restrictions.eq("usu_senha", getUsu_senha());
            c.add(_senha);
            System.out.println("resultado: "+_login+" - "+getUsu_nome());
            if(c.uniqueResult() != null)
                return "sucesso";
            else
                return "erro";

     }

porem preciso restringir o acesso a certa paginas, meu sistema tem dois tipos de usuarios, um “administrador” e o “comum”, o administrador tem acesso a certas paginas enquanto o “comum” tem acesso a outras, eu queria impedir q um navegasse na pagina do outro, (por exemplo, se ele digitasse a url completa)

alguém tem ideia de como posso fazer isso?

login.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich">
    <h:head></h:head>
    <h:body>
        <h:form>
            <table>
                <tr>
                    <td><h:outputText value="Enter Login ID: " /></td>
                    <td><h:inputText id="loginname" value="#{gravaUsuario.usu_nome}"  /></td>
                </tr>
                <tr>
                    <td><h:outputText value="Enter Password: " /></td>
                    <td><h:inputSecret id="password" value="#{gravaUsuario.usu_senha}" /></td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td><h:commandButton value="Login" action="#{gravaUsuario.validarUsuario}" /></td>
                </tr>
            </table>
        </h:form>
    </h:body>
</ui:composition>

Classe Usuario

package br.salesianos.modelo;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import org.hibernate.annotations.ForeignKey;

@Entity
public class Usuario implements Serializable {

    @Id
    @SequenceGenerator(name="generator_usuario",sequenceName="sequence_usuario")
    @GeneratedValue(generator="generator_usuario")
    private Integer usu_id;
    
    @Column(length=100)
    private String usu_nome;
    
    @Column(length=100)
    private String usu_tipo;

    @ManyToOne
    @ForeignKey(name="usuario_fkey_pessoas_01")
    @JoinColumn(name="pes_id")
    private Pessoas pessoas;

    @Column(length=100)
    private String usu_senha;

    /**
     * @return the usu_id
     */
    public Integer getUsu_id() {
        return usu_id;
    }

    /**
     * @param usu_id the usu_id to set
     */
    public void setUsu_id(Integer usu_id) {
        this.usu_id = usu_id;
    }

    /**
     * @return the usu_nome
     */
    public String getUsu_nome() {
        return usu_nome;
    }

    /**
     * @param usu_nome the usu_nome to set
     */
    public void setUsu_nome(String usu_nome) {
        this.usu_nome = usu_nome;
    }

    /**
     * @return the usu_tipo
     */
    public String getUsu_tipo() {
        return usu_tipo;
    }

    /**
     * @param usu_tipo the usu_tipo to set
     */
    public void setUsu_tipo(String usu_tipo) {
        this.usu_tipo = usu_tipo;
    }

    /**
     * @return the pessoas
     */
    public Pessoas getPessoas() {
        return pessoas;
    }

    /**
     * @param pessoas the pessoas to set
     */
    public void setPessoas(Pessoas pessoas) {
        this.pessoas = pessoas;
    }

    
}