使用shiro权限控制有三种方式:
- 注解式:使用shiro注解
- 编程式:编写代码
- 配置式:使用yml配置
一、注解式
注意:如果使用的是使用的permission验证,一般会在管理系统-菜单管理-新增固定按钮并且填上授权标识符
使用方法:
@PostMapping
@RequiresPermissions("demo:anttest:save")
public Result save(@RequestBody Map<String,Object> param) {
return new Result().ok();
}
二、编程式
不满足情况则抛出异常,异常类为:org.apache.shiro.authz.AuthorizationException
示例:
public Result save(@RequestBody Map<String,Object> param) {
Subject subject = SecurityUtils.getSubject();
subject.checkPermission("aaa");
subject.checkRole("aaa");
return new Result().ok();
}
三、配置式
在yml进行配置
shiro:
urlRules:
- url: /aaa/**
rule: anon
- url: /bbb/**
rule: authc,roles[admin]
- url: /ccc/**
rule: authc,perms[测试用的lkkk]