強化springBoot2 +shiro(多公司 多角色 多介面)許可權控制
1.工具說明
技術:註解+(設計模式)(單例-內部類懶載入,責任鏈,工廠模式)+自動掃包
優點:
1.非侵入式外掛(可以很容易新增到你的SpringBoot專案)
2.易學習
3.可以針對不同機構 不同角色 不同請求進行 過濾授權
4.增加快取機制可以提供過濾效率
5.支援自定義規則
2.使用方法
1.在SpringBoot啟動器新增掃描註解並配置待掃描的自定義過濾器包
@SpringBootApplication @ScanRoleConfig("top.hihuzi.test") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); FilterManager.scanRoleRule(Application.class); /** 下面這句用於測試 **/ //System.out.println(FilterManager.excute(new RuleSimple(new Object[]{"/first"}, null))); } }
2.自定義一個或者多個過濾器(可以為每個公司每個角色進行配置一個過濾器)具體程式碼如下:
package top.hihuzi.filter; import top.hihuzi.annotation.RoleRules; import top.hihuzi.bean.Rule; import top.hihuzi.croe.Filter; import java.util.Arrays; /** * tips * * @author: hihuzi 2018/11/4 10:22 */ @RoleRules public class FirstFilter implements Filter { @Override public Rule execute(Rule rule) { if ((String.valueOf(rule.getKey()[0])).equals("/first")) { // cache: 是一個快取使用者自己去校驗cache是一個Map可以定義唯一的 Key value可以定義為 boolean(true,false) rule.cache().put("/first", rule.getValue() == null ? null : Arrays.asList(rule.getValue())); System.out.println("我是第一個!!!!"); } return rule; } }
3.具體到自己需要進行篩選許可權的介面地方如下呼叫
// 先傳一些值 用於過濾器 校驗規則 FilterManager.excute(new RuleSimple(new Object[]{"/first"}, null)); Object permission = excute2.isPermission(new Object[]{"/second", "你好師姐!"});
3.readme
也是第二次在這裡發點東西,希望有夢想盆友多多指點
---hihuzi 2018-11-6 晚
4.下載地址
ofollow,noindex">https://github.com/hioo520/role-Intercept.git