在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的標簽庫:

/** * 跳轉到登錄界面 * @return */ @RequestMapping("tologin") public String tologin(){ return "login"; }