Skip to content

Instantly share code, notes, and snippets.

@qmx
Forked from anonymous/gist:347923
Created March 29, 2010 15:51
Show Gist options
  • Save qmx/347989 to your computer and use it in GitHub Desktop.
Save qmx/347989 to your computer and use it in GitHub Desktop.
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration.addAnnotatedClass(Usuario.class);
sessionFactory = configuration.buildSessionFactory();
new SchemaExport(configuration).create(true, false);
}
public Session openSession() {
return sessionFactory.openSession();
}
}
@Resource
public class LoginController {
private UsuarioDao usuarioDao;
private UsuarioLogado usuarioLogado;
private Result result;
public LoginController(UsuarioDao usuarioDao, UsuarioLogado usuarioLogado,
Result result) {
this.usuarioDao = usuarioDao;
this.usuarioLogado = usuarioLogado;
this.result = result;
}
public void autentica(Usuario usuario) {
Usuario autenticado = usuarioDao.buscaUsuarioPorLoginESenha(usuario);
if (autenticado != null) {
usuarioLogado.efetuaLogin(autenticado);
result.use(Results.logic()).redirectTo(PrincipalController.class).formulario();
return;
}
result.use(Results.logic()).redirectTo(LoginController.class).formulario();
}
public void formulario() {
}
}
@Component
@RequestScoped
public class UsuarioDao {
private final Session session;
public UsuarioDao() {
session = new HibernateUtil().openSession();
}
public Usuario buscaUsuarioPorLoginESenha(Usuario usuario) {
Query query = this.session.createQuery("from Usuario where login = :pLogin and senha = :pSenha");
query.setParameter("pLogin", usuario.getLogin());
query.setParameter("pSenha", usuario.getSenha());
return (Usuario) query.uniqueResult();
}
}
@Component
@SessionScoped
public class UsuarioLogado {
private Usuario usuarioLogado;
public void efetuaLogin(Usuario usuario){
this.usuarioLogado = usuario;
}
public Usuario getUsuario(){
return this.usuarioLogado;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment