【shiro】@RequiresPermissions在postman的调用

项目描述

利用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起作用了,会报没有权限。

解决方法

  1. 用postman先进性登录接口调用,需要注意的是调用登录接口的用户要有权限,登录成功后会返回一个token;
  2. 把拿到的token再放到调用“保存用户”接口的header中,如:token=xxx,再次调用接口,用户新增成功。

【shiro】@RequiresPermissions在postman的调用_第1张图片

原因是renrenfast的设计理念是token和用户一一对应,传了token就相当于知道了是谁在新增用户,而这个人又有权限,所以新增成功。

注意:以上都是基于postman调用,而相对于renrenfast框架,还有一个前端框架,用了这个前端框架,就比较清楚了。

总体而言,就是想调接口先登录,不登录接口不允许调用,不同的人有不同的权限,所以针对某个人,有些接口能调,有些接口不能调。

参考文章

你可能感兴趣的:(SpringBoot,postman,shiro)