springboot整合shiro:基于前端的權限控制和基于后端的權限控制
點擊上方藍色字體,選擇“標星公眾號”
優(yōu)質文章,第一時間送達
? 作者?|??xueheng_blog
來源 |? urlify.cn/rIFJzm
問題描述:
如何讓前端的某個按鈕在用戶擁有該按鈕的權限時才顯示?如何讓后端的某個接口在用戶擁有該訪問的權限時才可以訪問?
?
解決方法:
基于前端的權限控制:前端某個按鈕的隱藏或顯示可以通過shiro的頁面標簽來控制,當用戶擁有該權限時,我們就讓該按鈕顯示,否則隱藏;
基于后端的權限控制:后端的某個接口我們可以通過shiro的注解來控制是否允許訪問,當用戶擁有該權限時,我們就允許訪問,否則不允許訪問;
一、基于前端的權限控制
| 標簽名 | 作用 |
|---|---|
| shiro:guest | 允許游客訪問的代碼塊 |
| shiro:user | 允許已經驗證或者通過"記住我"登錄的用戶才能訪問的代碼塊。 |
| shiro:authenticated | 只有通過登錄操作認證身份,而并非通過"記住我"登錄的用戶才能訪問的代碼塊。 |
| shiro:notAuthenticated | 未登錄的用戶顯示的代碼塊。 |
| shiro:principal | 顯示當前登錄的用戶信息。 |
| 只有擁有admin角色的用戶才能訪問的代碼塊。 | |
| 只有擁有admin或者manager角色的用戶才能訪問的代碼塊。 | |
| 沒有admin角色的用戶顯示的代碼塊 | |
| 只有擁有"admin:delete"權限的用戶才能訪問的代碼塊。 | |
| 沒有"admin:delete"權限的用戶顯示的代碼塊。 |
?
1、添加依賴
????org.apache.shiro
????shiro-spring
????1.4.0
????com.github.theborakompanioni
????thymeleaf-extras-shiro
????2.0.0
2、在頁面頭上加標簽支持
"http://www.thymeleaf.org"?xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">?
3、配置shiro標簽
//配置ShiroDialect:用于thymeleaf和shiro標簽配合使用
@Bean
public?ShiroDialect?getShiroDialect(){
????return?new?ShiroDialect();
}?
4、在頁面中使用shiro標簽進行權限控制:有兩種方式
?
二、基于后端的權限控制
1、添加依賴
????org.apache.shiro
????shiro-spring
????1.4.0
????com.github.theborakompanioni
????thymeleaf-extras-shiro
????2.0.0
?2、配置注解支持
/**
?*?開啟shiro?aop注解支持.
?*/
@Bean
public?AuthorizationAttributeSourceAdvisor?authorizationAttributeSourceAdvisor(SecurityManager?securityManager)?{
????AuthorizationAttributeSourceAdvisor?authorizationAttributeSourceAdvisor?=???????new?AuthorizationAttributeSourceAdvisor();
????authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
????return?authorizationAttributeSourceAdvisor;
}3、在控制層接口上添加注解
@GetMapping("/users")
@RequiresPermissions("sys:user:list")?//只有擁有該權限的用戶才能訪問該接口
public?DataResult>?getAllDept(User?user){
????DataResult?result?=DataResult.success();
????result.setData(this.userService.getUser());
????return?result;
}


新款SpringBoot在線教育平臺開源了
啃了這66套Java項目課程后,終于找到工作了!
精品帖子大匯總
牛逼plus,Spring Boot-Shiro-Vue權限系統(tǒng)(細粒度控制到按鈕)
??? ?
感謝點贊支持下哈?![]()
評論
圖片
表情
