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"; } }
最近下载更多
XiaoSong888 LV2
1月10日
泓鼎168 LV19
2023年10月16日
wz520135 LV7
2022年11月5日
听着雨吹着风 LV9
2022年5月15日
叶柯宸 LV3
2022年5月10日
fengshengtian LV8
2022年4月21日
Start1 LV15
2022年3月8日
wanglinddad LV54
2021年12月30日
qq70081337 LV6
2021年8月28日
ssh123 LV10
2021年7月5日
最近浏览更多
13521878735 LV3
3月26日
XiaoSong888 LV2
1月10日
WBelong LV7
2023年12月26日
edpwyg LV14
2023年10月22日
泓鼎168 LV19
2023年10月16日
飞呀飞呀飞不放 LV7
2023年8月9日
gecongkai LV8
2023年6月22日
miluya
2023年6月13日
暂无贡献等级
1379585889 LV11
2023年6月7日
一只shy咩咩 LV2
2023年5月18日