欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Spring與Shiro整合及加載權限表達式問題

如何加載權限表達式

成都創(chuàng)新互聯公司是一家專注于成都做網站、成都網站建設與策劃設計,宜興網站建設哪家好?成都創(chuàng)新互聯公司做網站,專注于網站建設十載,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:宜興等地區(qū)。宜興做網站價格咨詢:18982081108

我們在上章內容中畫了一張圖,里面有三個分項,用戶 角色 權限;

那么接下來我們就要思考一個問題了,這三張表中的數據要從何而來呢?

用戶表

首先先看用戶表,用戶表的數據庫是從用戶注冊而來;

角色

角色的話肯定是我們手動去創(chuàng)建出來,但是我們在創(chuàng)建角色之前呢?是不是需要先有權限后才能去創(chuàng)建角色呢?因為角色是依賴于權限,只要先有了權限,我們就可以講它們歸類,分配給我們某一個角色;

所以我們的突破口就是,權限該如何去加載這個問題;

我們可以打開我們的Cotroller在接口上可以看到凡是帶有Shiro注解的,都是需要有相對應的權限才可以訪問的:

Spring與Shiro整合及加載權限表達式問題

重新加載權限

那,問題就來了,我們如何將注解中的權限表達式(employee:edit)存入到數據庫中呢?

我們在之前的操作中,是手動的將表達式復制粘貼到數據庫中,也就是手動添加進去的,那你想一下,如果需要添加非常多的權限,我們還依然用手動的方式,顯然非常麻煩!

那我們能不能想一種辦法,就是讓用戶一點擊或進入這個接口執(zhí)行一個方法馬上讓它把所有Cotroller中的權限表達式給全部拿出來存入到數據庫中;

能不能做到呢?

答案是可以的!

Spring與Shiro整合及加載權限表達式問題

我們在頁面上有一個功能是重新加載權限,這個意思就是我們點擊后,你加下來的編碼,給某給接口添加某項權限的時候,就會幫你把所有Cotrolle中的新添加的權限重新的保存到數據庫中;

這個按鈕就是一個Url,點擊后就進入到了我們在Cotroller編寫的接口方法中:

Spring與Shiro整合及加載權限表達式問題

接下來,我們就來看下這個reload接口是如何編寫的:

Spring與Shiro整合及加載權限表達式問題

中間的部分就是獲取權限表達式,畫箭頭的是調用了接j口執(zhí)行的Sql保存操作也就是insert;

此次的接口是對象保存的方式,接口的具體編寫也非常簡單,其實就跟用戶注冊一樣,將name(權限名稱)resource(表達式)作為插入字段即可;

Spring與Shiro整合及加載權限表達式問題

然后在方面結尾調用接口,需要傳入一個對象,這個對象(Permisssion p )就是我們存進去的權限名稱以及表達式對象;

具體Sql語句編寫方式:

insert into permission (name,resource) values("permissionName","PermissionResource");

編寫自定義注解來獲取權限昵稱

我們在reload接口中,拿到的僅僅都是表達式,和獲取Requesmapping,但是我們在數據庫中有一列是權限名稱,因為光靠表達式并非知道它的中文意思,所以我們需要自定義注解,從而獲取注解內部的中文詮釋;

Spring與Shiro整合及加載權限表達式問題

我們可以看到,這個注解是會報錯的,因為這個注解并不是spring或java內置的,更不是第三方依賴的jar包,而是需要我們自定義,所以,自定義注解名字可以隨便起,但是一定要有意義;

我們來看看自定義注解是如何創(chuàng)建的;

1.編寫好自己的注解

就按照上圖的例子我起的名字是@PermissionName;

2.創(chuàng)建一個注解在realm路徑下(根據公司項目的結構定義)

Spring與Shiro整合及加載權限表達式問題

注意,Kind:一定選擇Annotation(自定義注解);Name可以隨便起,但是一定要有意義,我這里直接叫PermissionName就好了;

我這里就把注解創(chuàng)建在realm目錄下,因為畢竟這個也是Shiro的一部分,也可以將它放入到工具包下也可以,根據公司的項目結構來,如果這是一個新加入的功能,推薦放入realm包下,并在內打上注解介紹;

3.編寫自定義注解類

Spring與Shiro整合及加載權限表達式問題

該注解僅僅獲取權限名稱使用,以上結構寫死即可;

解決重復插入問題(去重)

編寫完成后,我們開始進入測試,我們來看看是否可以執(zhí)行成功,將權限名稱以及表達式保存進數據庫中:

Spring與Shiro整合及加載權限表達式問題

執(zhí)行成功,以及加載了全部的權限列表,并且都保存至數據庫中;

但是問題來了,如果我們再次點擊加載權限列表會怎么樣?

Spring與Shiro整合及加載權限表達式問題

我們發(fā)現,重復添加了,這種情況在實際開發(fā)當中是絕對不允許的,如何解決呢?

去重操作

我們需要在PermissionController類中第0步,再添加一個功能,就是去重;

這個時候,我們需要去調用接口去數據庫中查詢一下,看看是否有重復,如果重復,我們就跳過,如果沒重復,我們就保存進來;

1.我們編寫獲取所有員工權限的接口

/**
獲取所有權限表達式
*/
List<String>getAllResources();

2.編寫Sql

select resource From permission; 

permission就是表,resource是其中的列(權限表達式);我們僅需獲取這一個列即可

3.編寫實現類

實現類就非常簡單,掉Mapper層,執(zhí)行sql,用集合接收,數據接收到后,直接retrun過去即可;

4.在Controller類中調用

Spring與Shiro整合及加載權限表達式問題

畫箭頭就是新加入的內容,根據以上指引編寫即可;

總結

以上所述是小編給大家介紹的Spring與Shiro整合及加載權限表達式問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

當前題目:Spring與Shiro整合及加載權限表達式問題
當前URL:http://aaarwkj.com/article38/pesjpp.html

成都網站建設公司_創(chuàng)新互聯,為您提供標簽優(yōu)化、關鍵詞優(yōu)化、外貿網站建設、商城網站、、做網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

外貿網站建設
伦理中文字幕一区二区| 日韩一区二区三区91| 国产亚洲精品麻豆一区二区| 97视频精品在线播放| 日韩视频精品推荐一区二区| 国产亚洲视频一区二区观看| 国产精品高清另类一区二区三区| 日本日本熟妇在线视频| 亚洲国产精品日韩专区av有中文| 成人性生活黄色三级视频| 成人色视频免费在线观看| 国产性做爰片免费视频| 亚洲麻豆精品午夜免费| 亚洲中文字幕高清无二区| 91熟女激情五月综合| 日本一区二区三区免费黄视频| 午夜啪视频免费在线观看| 深夜日本福利在线观看| 日韩精品在线观看电影| 在线免费观看日本91| 日韩黄色资源在线观看| 福利1中文字幕手机在线| 美女床上激情啪啪网页| 久久精品二区亚洲w码| 中文字幕午夜av福利| 国产日韩欧美亚洲一区二区 | 国产夫妻自拍在线视频| 亚洲日本久久久午夜精品| 亚洲av日韩精品一区二区| 色香蕉精品国产综合| 中国美女下面毛茸茸视频| 日韩欧美一区二区大片| 未满18十八禁止观看| 人人妻人人澡人人爽精品日本| 久久97精品人人做人人爽| 日韩在线国产精品一区| 久久国产精品av在线观看| 丰满人妻被猛烈进入中文版| 偷拍一区二区三区夫妻| 日本成人一区二区三区视频| 欧美日韩国产另类一区二区|