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> </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;
}
}