Problema no Spring Security com JEE usando JNDI

Estou trabalhando em uma aplicação usando jee6 com jboss as 7. REsolvi implementar a segurança usando spring security, pois não quero fazer isso no container.
Estou usando JNDI. Nas hora fazer o login ele não executa a query.

Persistence xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">
	
	<persistence-unit name="campus" transaction-type="JTA">
	
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		
		<jta-data-source>java:/campus</jta-data-source>
		
		<properties>
			<property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="false" />
            <property name="hibernate.hbm2ddl.auto" value="update"></property>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
		
		</properties>
		
	</persistence-unit>
</persistence>

Managed bean

package br.com.ebeji.campus.interfaces.controllers;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import br.com.ebeji.campus.application.services.AuthenticationService;


@ManagedBean
@RequestScoped
public class LoginBean {

  @ManagedProperty(value = "#{authenticationService}")
  private AuthenticationService authenticationService;

  private String userName;
  private String password;

  public String login() {
    boolean success = authenticationService.login(userName, password);
    if (!success) {
      FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Login ou senha inválidos");
      FacesContext.getCurrentInstance().addMessage(null, facesMessage);
      return "/auth/login.xhtml";
    }
    System.out.println("porra");
    return "/seguranca/usuarios/list.xhtml";
  }

  public String logout() {
    authenticationService.logout();
    return "/auth/login.xhtml";
  }
  
  public String getUsuarioLogado(){
    return authenticationService.getUsuarioLogado().getUsername();
  }

  public String getUserName() {
    return userName;
  }

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

  public String getPassword() {
    return password;
  }

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

  public void setAuthenticationService(AuthenticationService authenticationService) {
    this.authenticationService = authenticationService;
  }
  
}

Configuração de banco de dados no spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd	
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd"
	default-autowire="byName">

	<bean id="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="showSql" value="true" />
				<property name="generateDdl" value="true" />
				<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
			</bean>
		</property>
	</bean>
	
	<jee:jndi-lookup id="dataSource" jndi-name="java:/campus"/>

	<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />

	<tx:jta-transaction-manager />

	<bean
		class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
</beans>

Classe que faz a autenticação:

package br.com.ebeji.campus.application.services;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;

import br.com.ebeji.campus.domain.model.Usuario;


@Component
public class AuthenticationService {

  @Autowired
  @Qualifier("authenticationManager")
  private AuthenticationManager authenticationManager;

  public boolean login(String username, String password) {
    try {
      UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
      Authentication authenticate = authenticationManager.authenticate(token);
      if (authenticate.isAuthenticated()) {
        SecurityContextHolder.getContext().setAuthentication(authenticate);
        return true;
      }
    }
    catch (AuthenticationException e) {}
    return false;
  }

  public void logout() {
    SecurityContextHolder.getContext().setAuthentication(null);
    invalidateSession();
  }

  public Usuario getUsuarioLogado() {
    return (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  }

  private void invalidateSession() {
    FacesContext fc = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
    session.invalidate();
  }

}

Classe que implementa UserDetailsService

package br.com.ebeji.campus.application.services;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

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

import br.com.ebeji.campus.domain.model.Usuario;

@Component("userDetailsService")
public class UserDetailsServiceImpl implements UserDetailsService {
	@PersistenceContext
	private EntityManager entityManager;

	public UserDetails loadUserByUsername(String username)
			throws UsernameNotFoundException {
		return findByUsername(username);
	}

	private Usuario findByUsername(String username) {
		try {

			Query query = this.entityManager.createQuery(
					"SELECT u FROM Usuario as u WHERE u.email = :username")
					.setParameter("username", username);
			System.out.println("oba");
			return (Usuario) query.getSingleResult();

		} catch (NoResultException e) {
			throw new UsernameNotFoundException("Usuario nao encontrado");
		}
	}

}

No console ao carregar a aplicação:
.
.
.
19:13:21,039 INFO [org.springframework.transaction.jta.JtaTransactionManager] (MSC service thread 1-1) Using JTA UserTransaction: Transaction: unknown
19:13:21,040 AVISO [org.springframework.transaction.jta.JtaTransactionManager] (MSC service thread 1-1) No JTA TransactionManager found: transaction suspension not available

19:13:21,040 INFO [org.springframework.transaction.jta.JtaTransactionManager] (MSC service thread 1-1) Using JTA TransactionSynchronizationRegistry: com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple@1d509e3
.
.
.

Percebi que o problema é que ele não executa a query em findByUsername() na classe UserDetailsServiceImpl. Pode ser algum problema na conexão? Alguém já teve esse problema?

estou com o mesmo problema, teve alguma solução