在web中使用shiro(會話管理,登出,shiro標簽庫的使用)


 

在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";
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM