package com.blinkcoder.controller;
import com.blinkcoder.common.myConstants;
import com.blinkcoder.kit.DesKit;
import com.blinkcoder.model.User;
import com.blinkcoder.render.VelocityToolboxRender;
import com.jfinal.core.Controller;
import org.apache.commons.codec.binary.Base64;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
/**
* User: Michael
* Date: 13-10-17
* Time: 上午7:34
*/
public class MyController extends Controller {
public static MyController me;
@Override
protected void init(HttpServletRequest request,
HttpServletResponse response, String urlPara) {
super.init(request, response, urlPara);
me = this;
}
@Override
public void renderVelocity(String view) {
render(new VelocityToolboxRender(myConstants.VELOCITY_TEMPLETE_PATH +
view));
}
public String header(String name) {
return getRequest().getHeader(name);
}
public void header(String name, String value) {
getResponse().setHeader(name, value);
}
public void header(String name, int value) {
getResponse().setIntHeader(name, value);
}
public void header(String name, long value) {
getResponse().setDateHeader(name, value);
}
public User loginUser() {
return (User) getRequest().getAttribute("g_user");
}
public void saveUserInCookie(User user) {
String loginKey = loginKey(user);
removeCookie("blinkcoder");
setCookie("blinkcoder", loginKey, 365 * 24 * 3600, "/");
}
private String loginKey(User user) {
try {
StringBuilder sb = new StringBuilder();
sb.append(user.get("id"));
sb.append('|');
sb.append(user.get("openid"));
return URLEncoder.encode(new String(Base64.encodeBase64(DesKit.encrypt(sb.toString().getBytes(),
myConstants.COOKIE_ENCRYPT_KEY))), "UTF-8");
} catch (UnsupportedEncodingException e) {
return null;
}
}
}