牛客网退出登录问题
按照网上的教程走,会点击退出登录一直循环,加载不到登录页面,是因为cookie没有清理掉,每次退出清理一次cookie就ok了。
**
首先:在util的CookieUtil类中加入清除方法
public static String getValue(HttpServletRequest request, String name) {
if(request == null || name == null) {
throw new IllegalArgumentException("参数为空");
}
Cookie[] cookies = request.getCookies();
if(cookies != null) {
for(Cookie cookie : cookies) {
if(cookie.getName().equals(name)) {
return cookie.getValue();
}
}
}
return null;
}
public static void set(HttpServletResponse resp,String name,String value,int maxAge ){
Cookie cookie = new Cookie(name, value);
cookie.setMaxAge(maxAge);
resp.addCookie(cookie);
}
其次:在LoginTicketInterceptor修改(我是这样改的,成功了)
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
User user = hostHolder.getUser();
if (modelAndView != null) {
if(user!=null){
modelAndView.addObject("loginUser", user);
}else{
modelAndView.addObject("loginUser", null);
}
}
}
最后:在LoginController将logout方法修改
**
@RequestMapping(path = "/logout", method = RequestMethod.GET)
public String logout(HttpServletResponse resp,@CookieValue("ticket") String ticket) {
userService.logout(ticket);
hostHolder.clear();
// SecurityContextHolder.clearContext();
//清除cookie
CookieUtil.set(resp,"ticket",null,0);
return "redirect:/login";
}
最后,我是这样修改的完成了,后面用redis在重新修改吧