Commit | Line | Data |
---|---|---|
59e4c94a MS |
1 | package org.ufcspa.simdecs.session; |
2 | ||
3 | import java.util.Iterator; | |
4 | ||
5 | import javax.persistence.EntityManager; | |
6 | import javax.persistence.NoResultException; | |
7 | ||
8 | import org.jboss.seam.annotations.In; | |
9 | import org.jboss.seam.annotations.Logger; | |
10 | import org.jboss.seam.annotations.Name; | |
11 | import org.jboss.seam.log.Log; | |
12 | import org.jboss.seam.security.Credentials; | |
13 | import org.jboss.seam.security.Identity; | |
14 | import org.ufcspa.simdecs.entities.Regra; | |
15 | import org.ufcspa.simdecs.entities.Usuario; | |
16 | ||
17 | @Name("authenticator") | |
18 | public 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 | { | |
30 | log.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 | ||
42 | log.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 | } |