在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤
器专门为我们处理登出请求:
一.shiro会话管理器
shiro中也提供了类似于web中的session的机制
/** * 跳转到系统管理的主界面 * @return */ @RequestMapping("/index") public String index(Model model){ //可以通过Subject获取shiro会话中的用户身份对象 Users user = (Users)SecurityUtils.getSubject().getPrincipal(); List<Module> oneModules = userService.queryUsersModules(user); model.addAttribute("oneModules",oneModules); return "index"; } /** * 用户登录的请求 * @param user * @return */ @RequestMapping("/login") public String login(Users user, Model model, HttpSession session){ //获取用户的主体对象就可以了 Subject subject = SecurityUtils.getSubject(); //封装用户名和密码的认证信息对象 UsernamePasswordToken upt = new UsernamePasswordToken(user.getUsername(),user.getPassword()); //进行登录认证 try { subject.login(upt); }catch (Exception e){ e.printStackTrace(); model.addAttribute("error","用户名或者密码错误"); return "login"; } return "redirect:/user/index.do"; }
tomcat的session可以控制超时时间,Shiro的session也可以控制。如果需要控制类似于超时时间这些Session的属性,就需要在shiro的主配置文件中配置SessionManager对象了.
注意:对index.do请求不拦截
二.登出
首先需要在用户登录后的主界面写一个登出的链接
然后在控制器中实现登出的方法,注意在此方法中不用写任何逻辑:
在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤器专门为我们处理登出请求:
三.shiro标签库的使用
shiro为我们提供了一些简单的标签可以在jsp中使用,可以用来控制根据用户权限做一些操作使用标签库,首先要导入shiro的标签库:
tologin.do 跳转到登陆界面
/** * 跳转到登录界面 * @return */ @RequestMapping("tologin") public String tologin(){ return "login"; }