第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

前后端分離中后端提供的RESTFUL接口如何進行權(quán)限控制?

前后端分離中后端提供的RESTFUL接口如何進行權(quán)限控制?

達令說 2019-03-23 14:15:54
今天遇到一個問題我有一個系統(tǒng),是基于角色的權(quán)限控制.前端自然就是根據(jù)角色來控制應(yīng)該顯示的視圖.但是為了防止別人直接用httpclient訪問,那么后臺肯定也要對相應(yīng)的權(quán)限進行控制.進行交互時,我能知道的只有用戶是誰從而我可以知道的他的角色.那么我想知道在代碼層級的控制是怎么控制的.如何控制某個角色只能訪問一類url?我的想法是1.后臺需要維護整個系統(tǒng)的url(即提供的接口)2.維護系統(tǒng)所需要使用的視圖(菜單,按鈕等,因為接口的使用與視圖基本綁定)3.視圖和角色綁定,用戶和角色綁定這樣做就很麻煩1.維護整個系統(tǒng)的url工作量超大2.維護視圖對應(yīng)的接口URL工作量也超大3.基于資源的RESTFUL接口有很多在url上的參數(shù),正則會比較復(fù)雜,情況較多后來,我看到了SHIRO中可以這樣進行權(quán)限控制在接口中,如springmvc接口@RequireRoles("admin")@RequestMapping("/{id}")public void get(){   xxx}如何我可以這樣,直接接口所需要的角色使用Annotation在接口層處攔截,工作量就大大減少.但是目前看到的方案這種的role都只能hardcode.不能從數(shù)據(jù)庫動態(tài)獲取.所以問題有3個.1)大家這種情況是怎么處理的2)我的工作量十分大的方案是否合理?是否有改善的方法3)shiro有可能在接口層處直接進行角色權(quán)限的控制并且所需要的角色從數(shù)據(jù)庫中獲取嗎?各位大俠,感激不盡!------以下補充-----------前后端通過token驗證這是肯定的,我想問的其實是token驗證通過之后那我手上的數(shù)據(jù)有1.當前訪問的URL2.當前用戶,當前用戶的角色我是覺得針對角色去維護URL實在是比較麻煩.來想問問有沒有更好的解決方案
查看完整描述

8 回答

?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

每一個后端的請求都需要進行驗證,比如說一個獲取用戶信息列表的ajax請求,那么會驗證當前的請求有沒有權(quán)限獲取啊,去獲取請求的cookie,在和服務(wù)器上的session做個判斷,如果有權(quán)限就給他數(shù)據(jù),如果沒有就返回403之類的。


查看完整回答
反對 回復(fù) 2019-04-25
?
慕田峪9158850

TA貢獻1794條經(jīng)驗 獲得超7個贊

一般會將資源URL統(tǒng)一管理起來,會提供管理平臺維護權(quán)限,利用interceptor/filter校驗用戶是否有對應(yīng)的權(quán)限。

  1. 你想從數(shù)據(jù)庫獲取角色是為什么呢?因為權(quán)限會變化?這種情況你必須要將資源維護起來,或者想要實現(xiàn)動態(tài)權(quán)限就不可能。

  2. 權(quán)限較為簡單就像Tomcat Manager中的角色一樣,那直接使用硬編碼這也沒有什么問題。

最主要是需求要做成什么樣子。


查看完整回答
反對 回復(fù) 2019-04-25
?
慕慕森

TA貢獻1856條經(jīng)驗 獲得超17個贊

我覺得你這是兩個問題。

首先防止接口被其他人調(diào)用,這個可以使用token的機制來做限制,沒有token或者token不正確就返回403。

剩下的就是權(quán)限問題,用shiro和spring security等等都行,可以使用session來區(qū)分不同權(quán)限的用戶。


查看完整回答
反對 回復(fù) 2019-04-25
?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

  1. 服務(wù)端生成一個token返回給客戶端,客戶端每次請求就帶上這個token,后端用filter統(tǒng)一處理;

  2. 如果能解決問題3,那問題2就沒意義了;

  3. 記憶中shiro是可以在代碼層面控制權(quán)限的,看一下文檔吧。


查看完整回答
反對 回復(fù) 2019-04-25
?
尚方寶劍之說

TA貢獻1788條經(jīng)驗 獲得超4個贊

權(quán)限有多個粒度的,動作權(quán)限,數(shù)據(jù)權(quán)限,不同狀態(tài)條件下的權(quán)限,僅僅在某個層面上控制不了的,常見的RBAC,ACL都只能做到部分控制,還是要結(jié)合自身情況,靈活應(yīng)用,沒有包治百病的妙藥。


查看完整回答
反對 回復(fù) 2019-04-25
  • 8 回答
  • 0 關(guān)注
  • 4024 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號