最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shiro集成Spring之注解示例詳解

 更新時間:2018年09月09日 09:20:05   作者:趙俊  
Shiro想必大家都知道了,是目前使用率要比spring security都要多的一個權限框架,下面這篇文章主要給大家介紹了關于Shiro集成Spring之注解的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

前言

Shiro的組件都是JavaBean/POJO式的組件,所以非常容易使用Spring進行組件管理,可以非常方便的從ini配置遷移到Spring進行管理,且支持JavaSE應用及Web應用的集成。

集成 Spring 后我們通過過濾器鏈來配置每個 URL 需要的權限,但當配置多了以后就會不方便,而且只支持 URL 級別的配置。

好在 Shiro 提供了相應的注解用于權限控制,此處使用了 Spring MVC 來測試Shiro注解,當然 Shiro 注解不僅僅可以在 web 環(huán)境使用,在獨立的JavaSE 中也是可以用的,此處只是以 web 為例了。

下面話不多說了,來一起看看詳細的介紹吧

開啟注解配置

首先我們需要在 Spring Web 的配置文件 spring-web.xml 中加入以下內容來開啟 Shiro 的注解支持 :

<aop:config proxy-target-class="true"/>
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
 <property name="securityManager" ref="securityManager"/>
</bean>

簡單演示

接著我們就可以使用注解來配置權限:

@RestController
public class AuthorizationController {

 @RequestMapping("/role1")
 @RequiresRoles("user")
 public String role1() {
 return "success";
 }

 @RequestMapping("/role2")
 @RequiresRoles("admin")
 public String role2() {
 return "success2";
 }
}

訪問 role1 方法需要當前用戶有 user 角色,role2 方法需要 admin 角色。

當驗證失敗時,會拋出 UnauthorizedException ,我們可以使用 Spring 的 ExceptionHandler 來進行異常處理:

@ExceptionHandler(UnauthorizedException.class)
public String processUnauthorizedException(UnauthorizedException e) {
 return e.getMessage();
}

更多注解

當然不止有 @RequiresRoles 用來驗證角色,Shiro 還提供了以下注解:

@RequiresAuthentication

驗證用戶是否登陸,等同于方法 subject.isAuthenticated()  。

@RequiresUser

驗證用戶是否被 記憶,即登陸成功或 RememberMe 狀態(tài)。等同于方法 : subject.isAuthenticated() subject.isRemembered() 。

@RequiresGuest

僅未登錄狀態(tài)可訪問,與 @RequiresUser 完全相反。

@RequiresPermissions

驗證是否具備權限,可通過參數(shù) logical 來配置驗證策略:

// 擁有 admin 或 user 角色即可
@RequiresPermissions(logical = Logical.OR,value = {"admin", "user"})
// 需同時具備 admin 與 user 角色
@RequiresPermissions(logical = Logical.AND,value = {"admin", "user"})

RequiresRoles 同樣可以配置驗證策略。

小結

我們可以通過注解配置來更方便的實現(xiàn)權限配置,且這些方法不僅可以配置在 Controller 層,還可以在 Service 層,DAO 層等,只不過需要通過 IOC 容器來獲取對象才能使用。

本章代碼地址 : https://github.com/zhaojun1998/Premission-Study/tree/master/Permission-Shiro-10/

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • Java常用鎖synchronized和ReentrantLock的區(qū)別

    Java常用鎖synchronized和ReentrantLock的區(qū)別

    這篇文章主要介紹了Java常用鎖synchronized和ReentrantLock的區(qū)別,二者的功效都是相同的,但又有很多不同點,下面我們就進入文章了解具體的相關內容吧。需要的小伙伴也可以參考一下
    2022-05-05
  • Spring Boot實現(xiàn)跨域訪問實現(xiàn)代碼

    Spring Boot實現(xiàn)跨域訪問實現(xiàn)代碼

    本文通過實例代碼給大家介紹了Spring Boot實現(xiàn)跨域訪問的知識,然后在文中給大家介紹了spring boot 服務器端設置允許跨域訪問 的方法,感興趣的朋友一起看看吧
    2017-07-07
  • 如何解決@Valid對象嵌套List對象校驗無效問題

    如何解決@Valid對象嵌套List對象校驗無效問題

    這篇文章主要介紹了如何解決@Valid對象嵌套List對象校驗無效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Javafx簡單實現(xiàn)【我的電腦資源管理器】效果

    Javafx簡單實現(xiàn)【我的電腦資源管理器】效果

    這篇文章主要介紹了Javafx簡單實現(xiàn)【我的電腦資源管理器】效果,涉及Javafx操作系統(tǒng)文件模擬資源管理器的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • 一文掌握SpringSecurity?BCrypt密碼加密和解密

    一文掌握SpringSecurity?BCrypt密碼加密和解密

    BCrypt就是一款加密工具,可以比較方便地實現(xiàn)數(shù)據(jù)的加密工作。也可以簡單理解為它內部自己實現(xiàn)了隨機加鹽處理,這篇文章主要介紹了SpringSecurity?BCrypt密碼加密和解密,一文學會使用BCryptPasswordEncoder的方法,需要的朋友可以參考下
    2023-04-04
  • 淺析Java?BigDecimal為什么可以不丟失精度

    淺析Java?BigDecimal為什么可以不丟失精度

    在金融領域,為了保證數(shù)據(jù)的精度,往往會使用BigDecimal,所以這篇文章主要來和大家探討下為什么BigDecimal可以保證精度不丟失,感興趣的可以了解下
    2024-03-03
  • Java事件監(jiān)聽機制講解

    Java事件監(jiān)聽機制講解

    今天小編就為大家分享一篇關于Java事件監(jiān)聽機制講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • SpringBoot項目docker容器部署實現(xiàn)

    SpringBoot項目docker容器部署實現(xiàn)

    本文主要介紹了SpringBoot項目docker容器部署實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • Java精品項目瑞吉外賣之員工信息管理篇

    Java精品項目瑞吉外賣之員工信息管理篇

    這篇文章主要為大家詳細介紹了java精品項目-瑞吉外賣訂餐系統(tǒng),此項目過大,分為多章獨立講解,本篇內容為員工信息分頁查詢與啟用或禁用員工狀態(tài),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • IDEA+JRebel實現(xiàn)全自動熱部署的方法步驟

    IDEA+JRebel實現(xiàn)全自動熱部署的方法步驟

    這篇文章主要介紹了IDEA+JRebel實現(xiàn)全自動熱部署的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11

最新評論

南澳县| 武宁县| 宜川县| 江山市| 新津县| 留坝县| 清涧县| 桂东县| 泗水县| 尚志市| 南和县| 隆德县| 蒙山县| 余干县| 涟水县| 嵊州市| 利辛县| 巴彦淖尔市| 潞城市| 台南县| 凭祥市| 五河县| 临江市| 陆丰市| 盱眙县| 荣昌县| 克拉玛依市| 宣汉县| 星座| 惠州市| 偏关县| 内黄县| 新余市| 册亨县| 锡林郭勒盟| 宝应县| 三门峡市| 藁城市| 枣强县| 绩溪县| 绍兴市|