Blade认证鉴权方式

需要启动的服务

API认证:

先调用oauth接口进行认证:

http://localhost/blade-auth/oauth/token 

 

 

 

最后请求成功的结果

 

最后再请求具体的接口:

 把上面请求返回的这两部分单独占出来:

  

  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vem9zL3Jtc3BvcnRhbC9CaWF6ZmFueG1hbU5Sb3h4VnhrYS5wbmciLCJhdXRob3JpdGllcyI6WyJhZG1pbmlzdHJhdG9yIl0sImNsaWVudF9pZCI6InN3b3JkIiwicm9sZV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJsYWRleCIsInBvc3RfaWQiOiIxMTIzNTk4ODE3NzM4Njc1MjAxIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiLnrqHnkIblkZgiLCJvYXV0aF9pZCI6IiIsImRldGFpbCI6eyJ0eXBlIjoid2ViIn0sImV4cCI6MTY2MzY1NDQzNSwiZGVwdF9pZCI6IjExMjM1OTg4MTM3Mzg2NzUyMDEiLCJqdGkiOiI5N2RmOWY4MS02N2UwLTQ3MDEtYWU2Ni03YjZkZmI3MDQ1MzkiLCJhY2NvdW50IjoiYWRtaW4ifQ.bqoPSKZCEjBzoK0-S3GNn-3veYd05JpLcLRnH67vPU8",

    "token_type": "bearer"

 请求参数传递如下:

  请求头传递如下:

API鉴权放行

理论上看,所有业务API,都需要进行鉴权,这样才能保证整个系统的安全性,但也有个别特例情况,API 不需要认证也可以调用,这里就需要用到 Secure 的 API 放行配置。

若是使用SpringCloud版本,则打开nacos,找到对应配置文件增加接口放行配置

若需要拦截某个api下所有的请求,则可以改为 /api/**, 其中 ** 则代表下层所有请求

重启工程,去掉请求头,可以看到,请求成功了,说明 API 放行 配置成功

细颗粒度鉴权配置

  1. 鉴权配置用到了 Secure 模块的 @PreAuth 注解

  2. 为了可以起到对比的作用,对 count 进行权限放行(只要通过Token认证就可调用API)。

@GetMapping("count")
@PreAuth("permitAll()")
public Integer count(Integer cnt) {
   return cnt * 10;

 对 info进行权限判断,调用方需要拥有test的角色权限才可以调用

@GetMapping("info")
@PreAuth("hasRole('test')")
public String info(String name) {
   return "Hello, My Name Is: " + name;
}

调用 /api/count 发现请求成功。

 

调用 /api/info 发现返回了 请求未授权,因为我们的admin账号没有分配test角色

 

尝试改回admin权限

@GetMapping("info")
@PreAuth("hasRole('administrator')")
public String info(String name) {
   return "Hello, My Name Is: " + name;

 

 

 

单个微服务配置文件添加到nacos 

可以将单个项目下resource下的配置文件添加到nacos中,在nacos中的配置文件的命名就是就是微服务的名称.yaml。

例如:微服务名名blade-demo,在nacos中的配置文件名就为:blade-demo.yaml.

自定义包名设置

在blade-demo子项目中新建config包,在下面创建MybatisPlusConfiguration类,如下所示:

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值