发表于: 2017-05-03 23:11:33
1 1141
今天完成的事情:
拦截器里通过Cookie中判断Token的有效性来判断用户是否登录。
public class LoginInterceptor implements HandlerInterceptor {
@Autowired
private UserServiceImpl userService;
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
Cookie[] cookie = httpServletRequest.getCookies();
if (cookie != null) {
for (int i = 0; i < cookie.length; i++) {
if (cookie[i].getName().equals("token")) {
String token = cookie[i].getValue();
byte[] tk = TypeUtil.hexStringToByte(token);
byte[] tk1 = DES.decrypt(tk, "12345678");
String tk2 = new String(tk1);
String id = "";
String time = "";
for (int j = 0; j < tk2.length(); j++) {
char c = tk2.charAt(j);
if (c == '=') {
for (int k = j + 1; k < tk2.length(); k++)
time = time + tk2.charAt(k);
break;
}
id = id + c;
}
if (userService.select(Long.parseLong(id)) != null) {
return true;
}
}
}
}
httpServletRequest.getSession();
String contextpath = httpServletRequest.getScheme() + "://" + httpServletRequest.getServerName() + ":" + httpServletRequest.getServerPort() + httpServletRequest.getContextPath();
String uri = contextpath + "/login.html";
httpServletResponse.sendRedirect(uri);
return true;
}
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
}
里面的String contextpath = httpServletRequest.getScheme() + "://" + httpServletRequest.getServerName() + ":" + httpServletRequest.getServerPort() + httpServletRequest.getContextPath();
request.getContextPath(); // 应用的web目录的名称
明天计划的事情:
解决问题,完成判断是否登陆。试着完成任务五。
遇到的问题:
在主页点击跳转到职业页面是,出现错误。。。
收获:无
评论