授权规则|学习笔记

简介: 快速学习授权规则

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第二阶段授权规则】学习笔记与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/684/detail/11878


授权规则

 

内容介绍:

一、课题引入

二、流控应用填写

三、编写请求

四、区分来源

 

一、课题引入

根据调用微服务来源判断该次请求是否允许放行,举例说明:微服务 A,B,C ,A 和 B 都会调用 C ,以 C 为主要微服务,那么 A 和 B 就是 C  的请求来源,假设 A 来源的请求全部通过, B 来源的请求全部禁止,这就是根据来源决定是否放行请求。

image.png

可知使用 Sentinel 的来源访问控制的功能。来源访问控制根据资源请求来源 (origin) 限制资源是否通过。“是否通过”采用以下两种形式:

l 若选择白名单:则只有请求来源位于白名单内时才能通过;

l 若选择黑名单:则请求来源位于黑名单时不通过,其余请求均通过

 image.png

上图的资源名和授权类型易理解。

 

二、流控应用填写:

流控应用一栏需填写来源标识, Sentinel 提供 “Request Origin Parser”  (请求来源处理)接口来处理来源。只要 Sentinel 保护的接口资源被访问, Sentinel 就会调用 Request Origin Parser 的实现类去解析访问来源。

演示如下:

image.png

假设如图是 C 为 order 微服务, A 为 pc 端, B为 app 端。只有pc 端可以访问,其余均不可以,要想填写流控应用,则 pc,app 访问必须传递一个参数命名为 “serviceName” ,根据 “serviceName” 进行判断。

具体编写如下:

①编写:找到 config 选择 Refactor

②在 config 里找到 New 选择 Java Class ,弹出窗口在 Name 一栏输入 RequestOriginParserDefinition(定义) 点击确定。

③执行命令,实现 RequestOriginParser 。

package  com.itheima.config;

import com.alibaba.csp.sentinel.adpter.servlet.callback.RequestOriginParser;

import  org.apache. commons.lang3.StringUtils;

import  org.springframework.stereotype.Component;

import  javax.servlet.http.HttpServletRequest;

@Component

public calss  RequestOriginParserDefinition implements RequestOriginParser  {

//定义区分来源:本质作用是通过 request 域获取到来源标识

//app  pc

//然后  交给流控应用  位置进行匹配

@Override

public  String  parseOrigin(HttpServletRequest request) {

String  serviceName = request . getParameter (s: “serviceName”);

if  (StringUtils.isEmpty(serviceName))  {

throw new RuntimeException(“serviceName  is  not  empty”);

}

return  serviceName;

}

命令编写完毕进行保存。

 

三、编写请求

打开浏览器,新建网页,然后在最上方进行输入网址”

http://localhost:8091/order/message1?serviceName=app”

回车执行,结果是可以访问,

通过  throw new RuntimeException(“serviceName  is  not  empty”);这个位置可以找到 serviceName 这个来源。

 

四、区分来源

找到 Sentinel 控制台1.7.0中左侧列表栏的簇点链路中的/order/message1  ,点击授权,在流程应用中输入 pc ,授权类型选择白名单,再次访问,结果可以成功访问,访问 app 被限制。

若采用黑名单,流程应用中输入 pc ,其他请求均可通过,再次执行访问,结果 app 被限制, pc 可以访问。

相关文章
|
2月前
|
安全 Linux Shell
用户和组高级操作
本文介绍了Linux系统中用户和组管理的基本操作,包括使用`usermod`命令修改用户属性、使用`passwd`和`usermod`命令禁用和恢复用户账户、使用`userdel`命令删除用户账户、使用`groupadd`、`groupdel`和`groupmod`命令管理组群,以及使用`gpasswd`命令为组群添加用户。此外,还介绍了`su`和`sudo`命令的使用方法,帮助用户在不同身份之间切换。
50 3
|
8月前
|
监控 Java 数据安全/隐私保护
Sentinel黑白名单授权规则解读
Sentinel黑白名单授权规则解读
|
缓存 前端开发
钉钉授权套件如果前端如何判断是否需要调用授权组件?
如图所示,教程提示我们需要缓存授权结果避免每次都需要调用,我们为啥要缓存,不是应该钉钉来判断是否需要唤起授权套件吗?假如我缓存了授权记录?那我怎么判断当前用户是否有授权呢?获取用户信息需要authcode,但是authcode需要授权通过才能获取到。
|
运维 网络安全 数据库
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)(一)
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)
1128 0
|
运维 监控 小程序
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)(四)
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)(四)
715 0
|
运维 数据库 数据安全/隐私保护
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)(二)
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)(二)
260 0
|
运维 数据库
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)(三)
【运维知识进阶篇】一篇文章带你搞懂Jumperserver(保姆级教程:安装+用户与用户组+创建资产+授权资产+创建数据库+sudo提权+命令过滤+多因子认证+网域功能+审计台)(三)
236 0
|
数据挖掘 开发者
规则的产生| 学习笔记
快速学习规则的产生。
规则的产生| 学习笔记
|
云安全 安全 数据库
授权机制|学习笔记
快速学习授权机制
531 0
授权机制|学习笔记
|
云安全 存储 安全
访问控制概述|学习笔记
快速学习访问控制概述
487 0
访问控制概述|学习笔记