package org.mobicents.ipbx.session.security; import javax.persistence.EntityManager; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Logger; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Out; import org.jboss.seam.annotations.Scope; import org.jboss.seam.log.Log; import org.jboss.seam.security.Identity; import org.mobicents.ipbx.entity.Role; import org.mobicents.ipbx.entity.User; @Name("authenticator") @Scope(ScopeType.CONVERSATION) public class Authenticator { @Logger Log log; @In Identity identity; @In EntityManager entityManager; @Out User user; @SuppressWarnings("deprecation") public boolean authenticate() { log.info("Authenticating #0", identity.getUsername()); //List users = entityManager.createQuery("SELECT user FROM User user").getResultList(); User user = (User) entityManager.createQuery("SELECT user FROM User user WHERE user.name = :userName") .setParameter("userName", identity.getUsername()).getSingleResult(); this.user = user; this.user = user; if(user == null) { log.info("No such user " + identity.getUsername()); return false; } if(user.getPassword().equals(identity.getPassword())) { identity.addRole("basic"); if(user.getRoles() != null) { for(Role role: user.getRoles()) { identity.addRole(role.getRole()); } } return true; } return false; } }