package net.tooan.ynpay.commons.webapp.interceptor; import net.tooan.ynpay.commons.YnpayJndiConstants; 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.third.jfinal.ext.interceptor.ejb.EJBManager; import net.tooan.ynpay.third.jfinal.ext.interceptor.ejb.RemoteEJB; import net.tooan.ynpay.user.agent.facade.SessionFacade; import org.apache.commons.lang.StringUtils; /** * Created with IntelliJ IDEA. * User: Jing * Date: 13-10-23 * Time: 下午4:12 */ public class SsoInterceptor implements Interceptor { @RemoteEJB(mappedName = YnpayJndiConstants.Mongo_Session_Facade_Remote) private SessionFacade facade; public SsoInterceptor() { super(); EJBManager.manager.setEJB(this); } @Override public void intercept(ActionInvocation ai) { Controller controller = ai.getController(); String token = StringUtils.defaultIfBlank(controller.getCookie("_ynpay_token_"), controller.getRequest().getHeader("Authorization")); if (StringUtils.isNotBlank(token)) { try { controller.setAttr("user", facade.getByToken(token).getUser()); } catch (Exception e) { controller.removeAttr("user"); controller.getRequest().getSession().invalidate(); } } ai.invoke(); } }