【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,再次调用接口,用户新增成功。

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

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

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

参考文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
@RequiresPermissionsShiro框架中的一个注解,用于在方法或类级别上定义访问权限控制规则。它可以用来限制用户对特定操作或资源的访问权限。 使用@RequiresPermissions注解的步骤如下: 1. 在pom.xml文件中添加Shiro依赖: ```xml <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.7.1</version> </dependency> ``` 2. 在Shiro配置文件中配置权限控制规则,例如在shiro.ini文件中添加以下内容: ```ini [urls] /login = anon /logout = logout /user/** = authc, roles[user] /admin/** = authc, roles[admin] ``` 上述配置表示: - /login路径不需要进行认证(即匿名访问) - /logout路径需要进行登出操作 - /user/**路径需要进行认证,并且用户必须具有user角色 - /admin/**路径需要进行认证,并且用户必须具有admin角色 3. 在需要进行权限控制的方法或类上添加@RequiresPermissions注解,例如: ```java @RequiresPermissions("user:create") public void createUser() { // 创建用户的逻辑 } ``` 上述代码表示只有具有"user:create"权限的用户才能调用createUser方法。 需要注意的是,@RequiresPermissions注解的参数是一个字符串,表示权限字符串。权限字符串的格式可以根据实际需求进行定义,例如"user:create"表示创建用户的权限。 另外,@RequiresPermissions注解还支持逻辑运算符,例如: - @RequiresPermissions("user:create or user:update"):表示具有"user:create"或"user:update"权限的用户可以访问方法或类。 - @RequiresPermissions("user:create and user:update"):表示同时具有"user:create"和"user:update"权限的用户可以访问方法或类。 总结一下,@RequiresPermissions注解是Shiro框架中用于定义访问权限控制规则的注解,通过在方法或类上添加该注解,可以限制用户对特定操作或资源的访问权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值