Adicionadas perguntas aos nodos.
[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) {
79f1af86 38 log.info("N�o encontrou usu�rio");
59e4c94a
MS
39 return false;
40 }
41
79f1af86 42log.info("usuario nao � nulo");
59e4c94a 43
79f1af86 44 Iterator<Regra> rolesIt = entityManager.createQuery("Select reg From Regra as reg inner join reg.grupos gru inner join gru.usuarios usu where usu.id=:idUsuario")
59e4c94a
MS
45 .setParameter("idUsuario", usuario.getId())
46 .getResultList()
47 .iterator();
48
49 while(rolesIt.hasNext())
79f1af86 50 identity.addRole(rolesIt.next().getToken());
59e4c94a
MS
51
52
53 log.info("authenticating {0}", credentials.getUsername());
54
55 return true;
56 }
57
58}