package hamaster.gradesign.dao.impl; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import hamaster.gradesgin.util.Hash; import hamaster.gradesign.daemon.EJBClient; import hamaster.gradesign.dao.UserDAO; import hamaster.gradesign.entity.User; import hamaster.gradesign.ibe.util.Hex; public class UserDAOHibernateImpl extends DAOSupport implements UserDAO { public UserDAOHibernateImpl() { } /* * (non-Javadoc) * @see hamaster.gradesign.dao.UserDAO#isEmailExist(java.lang.String) */ @Override public boolean isEmailExist(String email) { Session session = factory.openSession(); Criteria criteria = session.createCriteria(User.class) .add(Restrictions.eq("email", email)) .setMaxResults(1); List<?> res = criteria.list(); boolean exist = res.size() != 0; session.disconnect(); return exist; } /* * (non-Javadoc) * @see hamaster.gradesign.dao.UserDAO#login(java.lang.String, java.lang.String) */ @Override public User login(String email, String password) { Session session = factory.openSession(); Criteria criteria = session.createCriteria(User.class) .add(Restrictions.eq("email", email)) .setMaxResults(1); List<?> res = criteria.list(); if (res.size() == 0) { session.disconnect(); return null; } User user = (User) res.iterator().next(); String salt = EJBClient.util.format(user.getRegDate()); byte[] hash = Hash.sha1(new StringBuilder(password).append(salt).toString()); if (Hex.hex(hash).equalsIgnoreCase(user.getPassword())) return user; session.disconnect(); return null; } /* * (non-Javadoc) * @see hamaster.gradesign.dao.UserDAO#listNewRegisteredUsers(int) */ @Override public List<User> listNewRegisteredUsers(int amount) { Session session = factory.openSession(); Criteria criteria = session.createCriteria(User.class) .add(Restrictions.eq("status", Integer.valueOf(User.USER_REG))) .setMaxResults(amount); @SuppressWarnings("unchecked") List<User> res = criteria.list(); return res; } }