鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ 單一入口的API接口使用shiro如果進行權(quán)限鑒權(quán)

單一入口的API接口使用shiro如果進行權(quán)限鑒權(quán)

問題描述

在進行數(shù)據(jù)通訊當中,全部數(shù)據(jù)都是走 http://host/api/ 這個URL地址,用業(yè)務(wù)請求碼來控制請求返回的結(jié)果,每個請求碼可能會有多種情況發(fā)生,不同的用戶角色控制其使用接口的權(quán)限,包含一個接口中不同的情況也要控制,在使用Shiro中就方了,大佬們有好的解決方案嗎

回答
編輯回答
爛人

如果不同業(yè)務(wù)已經(jīng)設(shè)計成通過請求參數(shù)來控制的話,建議使用shiro的自定義權(quán)限控制,解析對應(yīng)的業(yè)務(wù)代碼,進行權(quán)限控制。這種方法比較靈活,即可寫死權(quán)限規(guī)則,也可以配合數(shù)據(jù)庫等做成動態(tài)規(guī)則控制。

攔截所有請求, 對應(yīng)shiro配置: /**=perms;
繼承org.apache.shiro.authz.Permission,重寫implies方法,進行權(quán)限校驗。

2017年2月17日 05:21