一、背景
其實很早的時候,就在項目中有使用到shiro做登陸認證,直到今天才又想起來這茬,自己抽空搭了一個spring+springmvc+mybatis和shiro進行集成的種子項目,當然裏面還有很簡單的測試。本文將講述在maven下如何進行集成,希望對你有所幫助,喜歡請推薦。至於shiro相關的,最近也會寫幾篇介紹的,希望能夠有一個主觀的瞭解。
二、集成步驟
說明:關於spring+springmvc+mybatis的集成請移步另一篇博客:Spring+SpringMvc+Mybatis框架集成搭建教程
1.第一步引入shiro依賴
2.在web.xml中引入shiro的filter
3.resources文件下的spring目錄下新建spring-shiro.xml
4.新建自定義的Realm,CustomRealm.java
說明:doGetAuthorizationInfo()是做授權,比如項目中有很多資源,指定角色的人員只有指定的資源,這種情況可以使用這個方法來做授權,doGetAuthenticationInfo()方法做認證,我們一般是用作用戶登陸主邏輯,這個方法中我們只需要根據用戶提供的用戶名去數據庫中查找對應的用戶信息,然後用該信息返回一個SimpleAuthenticationInfo對象即可,不需要比較數據庫中的密碼和token中的密碼是否一直,因爲在登陸時shiro會幫我們做這件事,不匹配會拋出IncorrectCredentialsException來提示密碼錯誤。
5.自定義AuthroizeFilter.java
6.自定義SessionUtils.java來管理shiro相關的session等
經過上面這些步驟,我們就完成了spring和shiro的集成,關於簡單的測試程序,不再貼出,在這裏提供該種子項目的github地址:https://github.com/hafizzhang/spring-shiro.git
三、總結
通過本文,我們就完成了spring集成shiro做登陸的授權和認證,其實很簡單,繼續努力成長!