springcloud集成Oauth2权限项目-网关校验权限控制(十三)

这一篇主要是写权限控制,在网关校验权限。

大体思路:当用户访问一个url,在网关校验token是否合法,然后调用用户服务是否该用户有权限访问并返回一个boolean类型的值,网关检查返回的值来判断是否通过,没有权限拒绝访问

数据库已上传到项目中

 

首先是用户微服务需要增加接口供网关调用

根据用户id,查询拥有的角色,然后在查找拥有的资源,我用的是请求方式|url,拼接的字符串。

上面会访问数据库次数过多,可以把权限放在缓存中,这里就不说了。

上面显示具有GET 请求 的user/info/**接口权限和user/hello访问权限,当访问其它接口是就会报授权失败,上面鉴权逻辑很简单,就不细说了,user微服务改造完成。

接下来改造网关了,在配置类中添加配置

当网关token正确后会进入permissionService.hasPermission()方法,然后调用user服务是否有这个接口 的权限。

权限异常类也需要配置

最后在配置类中注入进去。

测试:

目前有两个权限

请求方式get访问user/hello接口

可以访问,

当我们访问请求方式get访问user/hello66接口。就会报没有权限

一个简易的权限控制就做到了。具体的配置还是看源代码。

项目地址:https://github.com/James-Pan0525/vcloud.git

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值