1 package org.appfuse.dao.hibernate; 2 3 import java.util.List ; 4 5 import org.acegisecurity.userdetails.UserDetails; 6 import org.acegisecurity.userdetails.UserDetailsService; 7 import org.acegisecurity.userdetails.UsernameNotFoundException; 8 import org.appfuse.dao.UserDao; 9 import org.appfuse.model.User; 10 import org.springframework.orm.ObjectRetrievalFailureException; 11 12 22 public class UserDaoHibernate extends BaseDaoHibernate implements UserDao, UserDetailsService { 23 26 public User getUser(Long userId) { 27 User user = (User) getHibernateTemplate().get(User.class, userId); 28 29 if (user == null) { 30 log.warn("uh oh, user '" + userId + "' not found..."); 31 throw new ObjectRetrievalFailureException(User.class, userId); 32 } 33 34 return user; 35 } 36 37 40 public List getUsers(User user) { 41 return getHibernateTemplate().find("from User u order by upper(u.username)"); 42 } 43 44 47 public void saveUser(final User user) { 48 if (log.isDebugEnabled()) { 49 log.debug("user's id: " + user.getId()); 50 } 51 52 getHibernateTemplate().saveOrUpdate(user); 53 getHibernateTemplate().flush(); 55 } 56 57 60 public void removeUser(Long userId) { 61 getHibernateTemplate().delete(getUser(userId)); 62 } 63 64 67 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { 68 List users = getHibernateTemplate().find("from User where username=?", username); 69 if (users == null || users.isEmpty()) { 70 throw new UsernameNotFoundException("user '" + username + "' not found..."); 71 } else { 72 return (UserDetails) users.get(0); 73 } 74 } 75 } 76 | Popular Tags |