package cn.jfinalbbs.interceptor;
import cn.jfinalbbs.common.Constants;
import cn.jfinalbbs.user.User;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/**
* Created by liuyang on 15/4/2.
*/
public class UserInterceptor implements Interceptor {
public void intercept(Invocation ai) {
HttpServletRequest request = ai.getController().getRequest();
HttpSession session = request.getSession();
User user = (User) session.getAttribute(Constants.USER_SESSION);
if(user == null) {
String uri = request.getRequestURI();
String param = "";
if(request.getQueryString() != null) {
try {
param = new String(request.getQueryString().getBytes("ISO8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
if(!param.equals("")) uri += "?"+param;
session.setAttribute(Constants.BEFORE_URL, uri);
ai.getController().getResponse().setCharacterEncoding("utf-8");
try {
ai.getController().getResponse().getWriter().write("<script>alert('请先登录');location.href=\'/\'</script>");
} catch (IOException e) {
e.printStackTrace();
}
} else {
ai.invoke();
}
}
}