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"; } }
最近下载更多
黑 LV6
3月25日
1379585889 LV11
2023年6月7日
孟子大叔 LV7
2023年3月27日
hihhhh LV6
2022年12月18日
ming_123_9715 LV23
2022年7月19日
wanglinddad LV53
2022年4月7日
鹿先森 LV3
2022年2月17日
mynewcode LV5
2022年2月9日
Liang LV3
2021年6月23日
gshnbb LV9
2021年6月16日
最近浏览更多
1437047954
3月7日
暂无贡献等级
xuweiwowzy LV5
1月14日
bjlabc LV1
1月4日
weibo1003
2023年10月25日
暂无贡献等级
irivn007 LV15
2023年10月19日
漫步的海星 LV4
2023年9月21日
2036495585 LV9
2023年9月20日
aaaaooa LV4
2023年9月6日
黑 LV6
2023年8月28日
zhy1989wz LV6
2023年7月6日