首页>代码>docker+spring boot+mybatis+druid+Thymeleaf+mysql整合开发个人博客系统,包括后台管理系统>/My-Blog-master/src/main/java/com/my/blog/website/controller/admin/AuthController.java
package com.my.blog.website.controller.admin; import com.my.blog.website.constant.WebConst; import com.my.blog.website.controller.BaseController; import com.my.blog.website.dto.LogActions; import com.my.blog.website.exception.TipException; import com.my.blog.website.modal.Bo.RestResponseBo; import com.my.blog.website.modal.Vo.UserVo; import com.my.blog.website.service.ILogService; import com.my.blog.website.service.IUserService; import com.my.blog.website.utils.Commons; import com.my.blog.website.utils.TaleUtils; import org.apache.catalina.servlet4preview.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * 用户后台登录/登出 * Created by BlueT on 2017/3/11. */ @Controller @RequestMapping("/admin") @Transactional(rollbackFor = TipException.class) public class AuthController extends BaseController { private static final Logger LOGGER = LoggerFactory.getLogger(AuthController.class); @Resource private IUserService usersService; @Resource private ILogService logService; @GetMapping(value = "/login") public String login() { return "admin/login"; } @PostMapping(value = "login") @ResponseBody public RestResponseBo doLogin(@RequestParam String username, @RequestParam String password, @RequestParam(required = false) String remeber_me, HttpServletRequest request, HttpServletResponse response) { Integer error_count = cache.get("login_error_count"); try { UserVo user = usersService.login(username, password); request.getSession().setAttribute(WebConst.LOGIN_SESSION_KEY, user); if (StringUtils.isNotBlank(remeber_me)) { TaleUtils.setCookie(response, user.getUid()); } logService.insertLog(LogActions.LOGIN.getAction(), null, request.getRemoteAddr(), user.getUid()); } catch (Exception e) { error_count = null == error_count ? 1 : error_count + 1; if (error_count > 3) { return RestResponseBo.fail("您输入密码已经错误超过3次,请10分钟后尝试"); } cache.set("login_error_count", error_count, 10 * 60); String msg = "登录失败"; if (e instanceof TipException) { msg = e.getMessage(); } else { LOGGER.error(msg, e); } return RestResponseBo.fail(msg); } return RestResponseBo.ok(); } /** * 注销 * * @param session * @param response */ @RequestMapping("/logout") public void logout(HttpSession session, HttpServletResponse response, HttpServletRequest request) { session.removeAttribute(WebConst.LOGIN_SESSION_KEY); Cookie cookie = new Cookie(WebConst.USER_IN_COOKIE, ""); cookie.setValue(null); cookie.setMaxAge(0);// 立即销毁cookie cookie.setPath("/"); response.addCookie(cookie); try { response.sendRedirect("/admin/login"); } catch (IOException e) { e.printStackTrace(); LOGGER.error("注销失败", e); } } }

心中无码 LV5
2024年12月9日
3305787467 LV12
2023年6月3日
hdell65 LV6
2022年10月5日
MangoCooper LV1
2022年7月8日
ZER0ZER0 LV3
2022年5月30日
wanglinddad LV55
2022年4月12日
y1214435276 LV9
2022年4月11日
xiex909 LV27
2022年3月17日
爱写代码 LV12
2021年12月20日
Mayoubin2001 LV21
2021年12月19日