项目描述
利用renrenfast-3.0.0项目框架进行项目开发,在新增用户的controller方法上,添加了@RequiresPermissions注解,如下
@SysLog("保存用户")
@PostMapping("/save")
@RequiresPermissions("sys:user:save")
public R save(@RequestBody SysUserEntity user){
ValidatorUtils.validateEntity(user, AddGroup.class);
user.setCreateUserId(getUserId());
sysUserService.saveUser(user);
return R.ok();
}
用postman直接调用这个接口新增用户,会报“invalid token”,首先想到的是在ShiroConfig把这个接口放行;这个时候@RequiresPermissions起作用了,会报没有权限。
解决方法
- 用postman先进性登录接口调用,需要注意的是调用登录接口的用户要有权限,登录成功后会返回一个token;
- 把拿到的token再放到调用“保存用户”接口的header中,如:token=xxx,再次调用接口,用户新增成功。
原因是renrenfast的设计理念是token和用户一一对应,传了token就相当于知道了是谁在新增用户,而这个人又有权限,所以新增成功。
注意:以上都是基于postman调用,而相对于renrenfast框架,还有一个前端框架,用了这个前端框架,就比较清楚了。
总体而言,就是想调接口先登录,不登录接口不允许调用,不同的人有不同的权限,所以针对某个人,有些接口能调,有些接口不能调。