javascript
SpringBoot整合Shiro(认证+授权)
文章目錄
- Shiro框架簡介
- Spring Boot整合shiro環境搭建
- Shiro實現登錄攔截
Shiro框架簡介
Apache Shiro是一個強大且易用的Java安全框架,執行身份認證丶授權丶密碼和會話管理。
shiro有6大作用:
主要是 認證 和 授權
以用戶登錄為例-多圖參考↓
Spring Boot整合shiro環境搭建
1.創建Spring Boot應用,集成Shiro及相關組件,pom.xml
pom.xml
2.準備一個sql表
3.配置yml
4.自定義realm
自定義realm首先我們就要寫一個realm,而這個realm我們一般要繼承AuthorizingRealm類,
因為這個類里面就有實現接收用戶認證信息和接收用戶權限信息的兩個方法,而realm就是用來從數據庫查詢這些數據的。
下面是我自定義的realm:
5.編寫controller控制器
@Controller public class MyController {@RequestMapping("/index")public String toIndex(Model model){model.addAttribute("msgTest","hello,shiro");return "index";}@RequestMapping("user/add")public String add(){return "user/add";}@RequestMapping("user/update")public String update(){return "user/update";} }6.編寫Shiro的配置類
@Configuration public class ShiroConfig {//3. 連接前端 ShiroFilterFactoryBeanpublic ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("defaultWebSecurityManager") DefaultWebSecurityManager defaultWebSecurityManager) {ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();//設置安全管理器bean.setSecurityManager(defaultWebSecurityManager);return bean;}//2. 接管對象 DafaultWebSecurityManager@Beanpublic DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm) {DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();//關聯userReal 接管reaml對象securityManager.setRealm(userRealm);return securityManager;}//1. 創建realm對象 、需要自定義@Beanpublic UserRealm userRealm() {return new UserRealm();} }7.controller對應的界面
index
add
update
8.主啟動器 啟動 并訪問測試 http://localhost:8080
跳轉add和update測試
Spring Boot整合Shiro環境搭建成功
Shiro實現登錄攔截
1.編寫登錄界面
2.編寫登錄界面的controller
3.Realm配置過濾器
Realm內置過濾器
anon: 無需認證就可以訪問
authc: 必須認證了才能訪問
user: 必須擁有我 記住我 功能才能訪問
perms: 擁有對莫個資源的權限才能訪問
role: 擁有莫個角色權限才能訪問
4.測試
我們給add界面設置的anon 無需認證就可以訪問
我們給update界面設置的authc: 必須認證了才能訪問
訪問update界面設置的是認證了才能訪問
我們設置了登錄攔截
沒有權限訪問的界面都會被登錄界面攔截
訪問update功能
Shiro實現登錄攔截成功!!!
#springboot+shiro+mybatis-plus+thymeleaf整合
springboot+shiro+mybatis-plus+thymeleaf整合
總結
以上是生活随笔為你收集整理的SpringBoot整合Shiro(认证+授权)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改thymeleaf默认路径
- 下一篇: SpringBoot+MyBatis登录