001    /**
002     * $Author: alejandroscandroli $
003     * $Id: TrailsUserDAO.java,v 1.1 2006/01/16 11:43:38 alejandroscandroli Exp $
004     */
005    
006    package org.trails.security;
007    
008    import org.acegisecurity.userdetails.UserDetails;
009    import org.acegisecurity.userdetails.UserDetailsService;
010    import org.acegisecurity.userdetails.UsernameNotFoundException;
011    import org.hibernate.criterion.DetachedCriteria;
012    import org.hibernate.criterion.Restrictions;
013    import org.springframework.dao.DataAccessException;
014    import org.trails.persistence.HibernatePersistenceService;
015    import org.trails.persistence.PersistenceService;
016    
017    
018    public class TrailsUserDAO implements UserDetailsService
019    {
020    
021            HibernatePersistenceService persistenceService;
022    
023            public void setPersistenceService(HibernatePersistenceService persistenceService)
024            {
025                    this.persistenceService = persistenceService;
026            }
027    
028            public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException
029            {
030                    DetachedCriteria criteria = DetachedCriteria.forClass(UserDetails.class);
031                    criteria.add(Restrictions.eq("username", username));
032                    return persistenceService.getInstance(UserDetails.class, criteria);
033            }
034    }