package com.flf.controller; import java.util.Date; import java.util.List; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.flf.entity.Menu; import com.flf.entity.Role; import com.flf.entity.User; import com.flf.service.MenuService; import com.flf.service.UserService; import com.flf.util.Const; import com.flf.util.RightsHelper; import com.flf.util.Tools; @Controller public class LoginController { @Autowired private UserService userService; @Autowired private MenuService menuService; /** * 访问登录页 * @return */ @RequestMapping(value="/login",method=RequestMethod.GET) public String loginGet(){ return "login"; } /** * 请求登录,验证用户 * @param session * @param loginname * @param password * @param code * @return */ @RequestMapping(value="/login",method=RequestMethod.POST) public ModelAndView loginPost(HttpSession session,@RequestParam String loginname,@RequestParam String password,@RequestParam String code){ String sessionCode = (String)session.getAttribute(Const.SESSION_SECURITY_CODE); ModelAndView mv = new ModelAndView(); String errInfo = ""; if(Tools.notEmpty(sessionCode) && sessionCode.equalsIgnoreCase(code)){ User user = userService.getUserByNameAndPwd(loginname, password); if(user!=null){ user.setLastLogin(new Date()); userService.updateLastLogin(user); session.setAttribute(Const.SESSION_USER, user); session.removeAttribute(Const.SESSION_SECURITY_CODE); }else{ errInfo = "用户名或密码有误!"; } }else{ errInfo = "验证码输入有误!"; } if(Tools.isEmpty(errInfo)){ mv.setViewName("redirect:index.html"); }else{ mv.addObject("errInfo", errInfo); mv.addObject("loginname",loginname); mv.addObject("password",password); mv.setViewName("login"); } return mv; } /** * 访问系统首页 * @param session * @param model * @return */ @RequestMapping(value="/index") public String index(HttpSession session,Model model){ User user = (User)session.getAttribute(Const.SESSION_USER); user = userService.getUserAndRoleById(user.getUserId()); Role role = user.getRole(); String roleRights = role!=null ? role.getRights() : ""; String userRights = user.getRights(); //避免每次拦截用户操作时查询数据库,以下将用户所属角色权限、用户权限限都存入session session.setAttribute(Const.SESSION_ROLE_RIGHTS, roleRights); //将角色权限存入session session.setAttribute(Const.SESSION_USER_RIGHTS, userRights); //将用户权限存入session List<Menu> menuList = menuService.listAllMenu(); if(Tools.notEmpty(userRights) || Tools.notEmpty(roleRights)){ for(Menu menu : menuList){ menu.setHasMenu(RightsHelper.testRights(userRights, menu.getMenuId()) || RightsHelper.testRights(roleRights, menu.getMenuId())); if(menu.isHasMenu()){ List<Menu> subMenuList = menu.getSubMenu(); for(Menu sub : subMenuList){ sub.setHasMenu(RightsHelper.testRights(userRights, sub.getMenuId()) || RightsHelper.testRights(roleRights, sub.getMenuId())); } } } } model.addAttribute("user", user); model.addAttribute("menuList", menuList); return "index"; } /** * 进入首页后的默认页面 * @return */ @RequestMapping(value="/default") public String defaultPage(){ return "default"; } /** * 用户注销 * @param session * @return */ @RequestMapping(value="/logout") public String logout(HttpSession session){ session.removeAttribute(Const.SESSION_USER); session.removeAttribute(Const.SESSION_ROLE_RIGHTS); session.removeAttribute(Const.SESSION_USER_RIGHTS); return "login"; } }
最近下载更多
微信网友_6906962132258816 LV6
4月21日
2036495585 LV9
2023年9月25日
what_the_fo LV5
2023年4月7日
微信网友_6248713511227392 LV11
2022年12月5日
2273117187 LV5
2022年6月15日
Start1 LV15
2022年3月8日
ssh123 LV10
2021年7月5日
gamal233 LV5
2021年6月23日
wangwenzhong LV9
2021年5月7日
qg123456789 LV5
2021年4月7日
最近浏览更多
微信网友_6906962132258816 LV6
4月21日
WBelong LV7
2023年12月26日
2036495585 LV9
2023年9月25日
多加两块钱 LV4
2023年6月14日
1379585889 LV11
2023年6月7日
what_the_fo LV5
2023年4月7日
zhexiu
2023年1月15日
暂无贡献等级
微信网友_6248713511227392 LV11
2022年12月5日
adnawda
2022年11月27日
暂无贡献等级
wz520135 LV7
2022年11月5日