shiro用戶登錄認證


1.用戶訪問服務器

2.過濾器過濾所有訪問的資源,判斷用戶是否認證  目標位置在這里是登錄驗證的controller

 

用戶登錄沒有認證會跳轉到這個方法,此方法只判斷錯誤信息,如果錯誤,會把mv打回到登錄頁面並顯示消息;如果是正確信息,默認會調用過濾器中的回到上一個請求的頁面,也就是訪問網站的index頁面。

 

3.首次登錄沒有session,沒有認證,跳轉到login頁面
  
前端

  后台 login.jsp 必須這樣寫:

 

原因:之前配置了過濾器,表單過濾器默認了參數名,不能隨意更改,包括上面的異常信息的名字shiroLoginFailure

 

 

 4。用戶填寫表單信息,點擊提交,后台進行數據認證

  4.1后台會調用shrio提供的抽象類AuthorizingRealm,通過繼承,編寫我們自己的認證方法,它提供了兩個重寫方法doGetAuthenticationInfo用戶認證和doGetAuthorizationInfo用戶授權,現在先理解用戶認證。

4.2登錄失敗 顯示密碼錯誤

  流程:通過調用上面的myRealm的驗證,會將錯誤消息存放到request域中,參數名為shiroLoginFailure,通過判斷該參數,controller知道該怎么處理錯誤信息。

4.3登錄成功,系統默認跳轉到上一次請求的頁面,因為如果從login.jsp頁面直接跳轉到index.jsp頁面是拿不到我們存放的,想要展示的數據,所以需要一個重定向來請求controller來獲取數據到主頁面

前台:

后台:

用戶點擊提交login.jsp

后台判斷正確后,跳轉到index頁面,取不到數據,所以重定向

請求到controller,controller准備數據,將數據打到主頁面上。重點是controller怎么取到數據。

first代表first.jsp頁面,使用了resful風格

5.退出,好像這個是有session的,不退出之后不需要登錄就可以進來了

退出不需要我們編寫代碼,只需要過濾器過濾就行了,在過濾器配置

 


免責聲明!

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



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