授权规则|学习笔记

简介: 快速学习授权规则

开发者学堂课程【全面讲解 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 可以访问。

相关文章
|
15天前
|
安全 Linux Shell
用户和组高级操作
本文介绍了Linux系统中用户和组管理的基本操作,包括使用`usermod`命令修改用户属性、使用`passwd`和`usermod`命令禁用和恢复用户账户、使用`userdel`命令删除用户账户、使用`groupadd`、`groupdel`和`groupmod`命令管理组群,以及使用`gpasswd`命令为组群添加用户。此外,还介绍了`su`和`sudo`命令的使用方法,帮助用户在不同身份之间切换。
29 3
|
3月前
|
安全 数据安全/隐私保护
|
3月前
|
存储
就软件研发问题之ACL 2.0中授权参数解析的问题如何解决
就软件研发问题之ACL 2.0中授权参数解析的问题如何解决
|
负载均衡 数据安全/隐私保护 开发者
配置访问控制|学习笔记
快速学习配置访问控制
349 1
配置访问控制|学习笔记
|
安全 Java 数据安全/隐私保护
权限控制之动态权限注解使用说明|学习笔记
快速学习权限控制之动态权限注解使用说明
权限控制之动态权限注解使用说明|学习笔记
|
数据挖掘 开发者
规则的产生| 学习笔记
快速学习规则的产生。
规则的产生| 学习笔记
|
安全 Java 数据库
案例之授权码模式测试|学习笔记
快速学习案例之授权码模式测试
案例之授权码模式测试|学习笔记
|
安全 前端开发 Java
权限控制之开启动态权限注解支持|学习笔记
快速学习权限控制之开启动态权限注解支持
权限控制之开启动态权限注解支持|学习笔记
|
云安全 安全 数据库
授权机制|学习笔记
快速学习授权机制
505 0
授权机制|学习笔记
|
云安全 存储 安全
访问控制概述|学习笔记
快速学习访问控制概述
473 0
访问控制概述|学习笔记