package bce.server.servicers;
import bce.java.utils.Hash;
import bce.jni.utils.BCEUtils;
import bce.server.dao.UserDAO;
import bce.server.entities.PersistentUser;
import bce.server.servlets.LoginServlet;
/**
* 业务类,LoginServlet的业务服务者
*
* @author robins
*
*/
public class LoginPageServicer {
private UserDAO userDAO;
public LoginPageServicer() {
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
/**
* 该方法用于检查登录
*
* @param userName 登录用户名
* @param password 登录用户密码
* @param returnedUser 服务器端构建的登录用户对象
* @return 0:USER_NAME_NOT_EXISTS; 1:PASSWORD_NOT_MATCH; 2:LOGIN_CHECK_PASSED;
*/
public int checkLogin(String userName, String password, PersistentUser returnedUser) {
PersistentUser genericUser = userDAO.get(userName);
if (genericUser == null)
return LoginServlet.USER_NAME_NOT_EXISTS;
if (BCEUtils.hex(Hash.sha1(password)).equals(genericUser.getPassword())) {
this.buildUser(returnedUser, genericUser);
return LoginServlet.LOGIN_CHECK_PASSED;
}
return LoginServlet.PASSWORD_NOT_MATCH;
}
/**
* 为新登录用户构建一个持久化对象
*
* @param returnedUser 返回用户对象
* @param genericUser 从数据库中检索出的用户对象
*/
private void buildUser(PersistentUser returnedUser, PersistentUser genericUser) {
returnedUser.setEmail(genericUser.getEmail());
returnedUser.setPassword(genericUser.getPassword());
returnedUser.setUserId(genericUser.getUserId());
returnedUser.setUserName(genericUser.getUserName());
returnedUser.setRegDate(genericUser.getRegDate());
}
}