Verificar Usuario na base de dados. Spring security, Hibernate, JSF 2.2, primefaces

Pessoal estou tentado logar com os users que tenho na minha base de dados mas nao consigo ele apenas cria a tabela mas nao vifica o que tem dentro da base de dados. vai ai meu codigo. Ajuda por favor.

UserDetailServiceImpl

package mz.co.mpteventos.springsecurity.controller;

import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

import mz.co.mpteventos.springsecurity.dao.DAO;
import mz.co.mpteventos.springsecurity.dto.UserDetailsImpl;
import mz.co.mpteventos.springsecurity.model.Conta;

public class UserDetailServiceImpl implements UserDetailsService {

private Conta conta = new Conta();


@Override
public UserDetails loadUserByUsername(String username)
		throws UsernameNotFoundException {

	System.out.println("No sistema " +username);
	System.out.println("Entrou no metodo");
	conta = new DAO<Conta>(Conta.class).listaTodos().get(1);	
	System.out.println("na base de daods " + conta.getNome());
	
	if (username.equalsIgnoreCase(conta.toString())) {
		UserDetailsImpl user = new UserDetailsImpl();/*
		user.setUserName(conta.getNome().toString());
		user.setPassword(conta.getPassword().toString());
		user.addAuthority(conta.getAuthorities().toString());*/
		return user;
	}
	
	throw new UsernameNotFoundException("Usuario não encontrado");
}

// getters & setters

public Conta getConta() {
	return conta;
}

public void setConta(Conta conta) {
	this.conta = conta;
}

}

UserDetailsImpl

package mz.co.mpteventos.springsecurity.dto;

import java.util.ArrayList;
import java.util.Collection;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

public class UserDetailsImpl implements UserDetails {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private String userName;
private String password;
private ArrayList<GrantedAuthorityImpl> authorities;

public void setUserName(String userName) {
	this.userName = userName;
}

public void setPassword(String password) {
	this.password = password;
}

public void addAuthority(String authorityName){
	if (this.authorities == null) {
		authorities = new ArrayList<GrantedAuthorityImpl>();
	}
	GrantedAuthorityImpl aut = new GrantedAuthorityImpl();
	aut.setName(authorityName);
	authorities.add(aut);
}

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
	// TODO Auto-generated method stub
	return authorities;
}

@Override
public String getPassword() {
	// TODO Auto-generated method stub
	return this.password;
}

@Override
public String getUsername() {
	// TODO Auto-generated method stub
	return this.userName;
}

@Override
public boolean isAccountNonExpired() {
	// TODO Auto-generated method stub
	return true;
}

@Override
public boolean isAccountNonLocked() {
	// TODO Auto-generated method stub
	return true;
}

@Override
public boolean isCredentialsNonExpired() {
	// TODO Auto-generated method stub
	return true;
}

@Override
public boolean isEnabled() {
	// TODO Auto-generated method stub
	return true;
}

}

GrantedAuthorityImpl

package mz.co.mpteventos.springsecurity.dto;

import org.springframework.security.core.GrantedAuthority;

public class GrantedAuthorityImpl implements GrantedAuthority {

/**
 * 
 */
private static final long serialVersionUID = 1L;

private String name;



public String getName() {
	return name;
}



public void setName(String name) {
	this.name = name;
}

@Override
public String getAuthority() {
	// TODO Auto-generated method stub
	return this.name;
}

}

DAO
package mz.co.mpteventos.springsecurity.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.criteria.CriteriaQuery;

import mz.co.mpteventos.springsecurity.model.Conta;

public class DAO {

private final Class<T> classe;

public DAO(Class<T> classe) {
	this.classe = classe;
}

public void adiciona(T t) {

	// consegue a entity manager
	EntityManager em = new JPAUtil().getEntityManager();

	// abre transacao
	em.getTransaction().begin();

	// persiste o objeto
	em.persist(t);

	// commita a transacao
	em.getTransaction().commit();

	// fecha a entity manager
	em.close();
}

public void remove(T t) {
	EntityManager em = new JPAUtil().getEntityManager();
	em.getTransaction().begin();

	em.remove(em.merge(t));

	em.getTransaction().commit();
	em.close();
}

public void removeNaLista(List<T> t) {
	EntityManager em = new JPAUtil().getEntityManager();
	em.getTransaction().begin();

	for (int i = 0; i < t.size(); i++) {
		em.remove(em.merge(t.get(i)));
	}
	
	em.getTransaction().commit();
	em.close();
}

public void atualiza(T t) {
	EntityManager em = new JPAUtil().getEntityManager();
	em.getTransaction().begin();

	em.merge(t);

	em.getTransaction().commit();
	em.close();
}

public List<T> listaTodos() {
	EntityManager em = new JPAUtil().getEntityManager();
	CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
	query.select(query.from(classe));

	List<T> lista = em.createQuery(query).getResultList();

	em.close();
	return lista;
}

public T buscaPorId(Integer id) {
	EntityManager em = new JPAUtil().getEntityManager();
	T instancia = em.find(classe, id);
	em.close();
	return instancia;
}

public T buscaPorNome(String t) {
	EntityManager em = new JPAUtil().getEntityManager();
	T instancia = em.find(classe, t);
	em.close();
	return instancia;
}

 public Conta encontrarUsuario(String nameUser) {
	 EntityManager em = new JPAUtil().getEntityManager();
     try {
    	 Conta user = (Conta) em
                      .createQuery(
                                  "SELECT c from Conta c where c.nome = :nome and c.password = :password and r.authorities - :authorities")
                      .setParameter("nome", nameUser);
    	 			

           return user;
     } catch (NoResultException e) {
           return null;
     }

}

public int contaTodos() {
	EntityManager em = new JPAUtil().getEntityManager();
	long result = (Long) em.createQuery("select count(n) from evento n")
			.getSingleResult();
	em.close();

	return (int) result;
}

public List<T> listaTodosPaginada(int firstResult, int maxResults) {
	EntityManager em = new JPAUtil().getEntityManager();
	CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
	query.select(query.from(classe));

	List<T> lista = em.createQuery(query).setFirstResult(firstResult)
			.setMaxResults(maxResults).getResultList();

	em.close();
	return lista;
}

}

JPAUtil
package mz.co.mpteventos.springsecurity.dao;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {

private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("springsecurity");

public EntityManager getEntityManager() {
	return emf.createEntityManager();
}

public void close(EntityManager em) {
	em.close();
}

}

persistence.xml
<?xml version="1.0" encoding="UTF-8"?>

<persistence-unit name="springsecurity" transaction-type="RESOURCE_LOCAL">

	<provider>org.hibernate.ejb.HibernatePersistence</provider>

	<class>mz.co.mpteventos.springsecurity.model.Conta</class>


	<properties>
		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mpteventosdb" />
		<property name="javax.persistence.jdbc.user" value="root" />
		<property name="javax.persistence.jdbc.password" value="fonsildb2" />

		<property name="hibernate.hbm2ddl.auto" value="create" />
		<property name="hibernate.show_sql" value="true" />
		<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
	</properties>
</persistence-unit>

Nota: Se eu tentar logar sem precisar dabase de dados directo ele aceita.