Initial import.
[simdecs_seam.git] / SimDeCS / src / hot / org / ufcspa / simdecs / session / Authenticator.java
CommitLineData
59e4c94a
MS
1package org.ufcspa.simdecs.session;
2
3import java.util.Iterator;
4
5import javax.persistence.EntityManager;
6import javax.persistence.NoResultException;
7
8import org.jboss.seam.annotations.In;
9import org.jboss.seam.annotations.Logger;
10import org.jboss.seam.annotations.Name;
11import org.jboss.seam.log.Log;
12import org.jboss.seam.security.Credentials;
13import org.jboss.seam.security.Identity;
14import org.ufcspa.simdecs.entities.Regra;
15import org.ufcspa.simdecs.entities.Usuario;
16
17@Name("authenticator")
18public class Authenticator
19{
20 @Logger private Log log;
21
22 @In Identity identity;
23 @In Credentials credentials;
24
25 @In
26 private EntityManager entityManager;
27
28 public boolean authenticate()
29 {
30log.info("entrou no metodo autenticate");
31 Usuario usuario;
32 try {
33 usuario= (Usuario) entityManager.createQuery("select usu from Usuario as usu where usu.login=:login and usu.senha=:senha")
34 .setParameter("login", credentials.getUsername())
35 .setParameter("senha", credentials.getPassword())
36 .getSingleResult();
37 } catch (NoResultException ne) {
38 log.info("Não encontrou usuário");
39 return false;
40 }
41
42log.info("usuario nao é nulo");
43
44 Iterator rolesIt = entityManager.createQuery("Select reg From Regra as reg inner join reg.grupos gru inner join gru.usuarios usu where usu.id=:idUsuario")
45 .setParameter("idUsuario", usuario.getId())
46 .getResultList()
47 .iterator();
48
49 while(rolesIt.hasNext())
50 identity.addRole(((Regra) rolesIt.next()).getToken());
51
52
53 log.info("authenticating {0}", credentials.getUsername());
54
55 return true;
56 }
57
58}