package net.tooan.ynpay.manage.webapp.interceptor; import net.tooan.ynpay.commons.webapp.RestfulStatus; import net.tooan.ynpay.commons.webapp.json.Result; import net.tooan.ynpay.third.jfinal.aop.Interceptor; import net.tooan.ynpay.third.jfinal.core.ActionInvocation; import net.tooan.ynpay.third.jfinal.core.Controller; import net.tooan.ynpay.user.agent.UserConstants; import net.tooan.ynpay.user.agent.bean.User; import org.apache.commons.lang.StringUtils; /** * Created with IntelliJ IDEA. * User: Jing * Date: 13-10-24 * Time: 下午12:52 */ public class AuthInterceptor implements Interceptor { private Result json = new Result(); @Override public void intercept(ActionInvocation ai) { Controller controller = ai.getController(); User user = controller.getAttr("user"); Boolean isRestful = StringUtils.startsWith(ai.getControllerKey(), "/restful/"); if (user == null) { next(controller, isRestful); } else { if (user.getType() == UserConstants.administrator) { if (controller.getSessionAttr("administrator", false)) { ai.invoke(); } else { next(controller, isRestful); } } else { next(controller, isRestful); } } } private void next(Controller controller, Boolean isRestful) { if (isRestful) { json.setMessage(RestfulStatus.Unauthorized_Code, RestfulStatus.Unauthorized_Msg); controller.renderJson(json); } else { controller.redirect("/login"); } } }