package net.tooan.ynpay.manage.webapp.controller.view;
import com.google.gson.Gson;
import net.tooan.ynpay.commons.ErrorConstants;
import net.tooan.ynpay.commons.YnpayJndiConstants;
import net.tooan.ynpay.commons.webapp.json.Result;
import net.tooan.ynpay.log.agent.helper.LogEnabled;
import net.tooan.ynpay.third.jfinal.aop.Before;
import net.tooan.ynpay.third.jfinal.core.Controller;
import net.tooan.ynpay.third.jfinal.ext.interceptor.Restful;
import net.tooan.ynpay.third.jfinal.ext.interceptor.ejb.RemoteEJB;
import net.tooan.ynpay.third.jfinal.log.Logger;
import net.tooan.ynpay.user.agent.UserConstants;
import net.tooan.ynpay.user.agent.bean.User;
import net.tooan.ynpay.user.agent.facade.SessionFacade;
import net.tooan.ynpay.user.agent.facade.UserFacade;
import net.tooan.ynpay.user.agent.model.Session;
/**
* Created with IntelliJ IDEA.
* User: Jing
* Date: 13-10-23
* Time: 下午3:42
*/
@Before(Restful.class)
public class AuthController extends Controller {
private static final Logger logger = Logger.getLogger(AuthController.class);
private Result json = new Result();
@RemoteEJB(mappedName = YnpayJndiConstants.User_Facade_Remote)
private UserFacade userFacade;
@RemoteEJB(mappedName = YnpayJndiConstants.Mongo_Session_Facade_Remote)
private SessionFacade sessionFacade;
public void index() {
if (getSessionAttr("administrator", false)) {
redirect("/");
} else {
render("/auth/login.html");
}
}
@LogEnabled
public void save() {
String email = getPara("email");
String password = getPara("password");
try {
User user = null;//userFacade.auth(email, Encrypt.md5(password), UserConstants.administrator);
Session session = sessionFacade.save(user);
setCookie("_ynpay_token_", session.getToken(), session.getExpire());
setSessionAttr("user", user);
if (user.getType() == UserConstants.administrator) {
setSessionAttr("administrator", true);
json.setSuccess(true);
sysLog("登录成功");
} else {
json.setMessage(ErrorConstants.authInfoErrCode, ErrorConstants.authInfoErr);
sysLog("登录失败,无权访问");
}
} catch (Exception e) {
if (logger.isErrorEnabled()) {
logger.error(e.getMessage(), e);
}
json.setMessage(e.getMessage());
sysLog(e.getMessage());
} finally {
renderJson(new Gson().toJson(json));
}
}
}