授权规则|学习笔记

简介: 快速学习授权规则

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

相关文章
|
8月前
|
存储 BI 数据安全/隐私保护
认证授权中的基本概念
认证授权中的基本概念
60 0
|
10月前
|
存储 缓存 安全
一.SpringSecurity基础-认证和授权概述
SpringSecurity基础-认证和授权概述
|
10月前
|
存储 缓存 安全
SpringSecurity基础-认证和授权概述
RBAC是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
68 0
|
缓存 前端开发 数据安全/隐私保护
【权限设计系列】「认证授权专题」史上最全的权限认证服务的权限模型大全
【权限设计系列】「认证授权专题」史上最全的权限认证服务的权限模型大全
284 0
【权限设计系列】「认证授权专题」史上最全的权限认证服务的权限模型大全
|
安全 Java 数据安全/隐私保护
权限控制之动态权限注解使用说明|学习笔记
快速学习权限控制之动态权限注解使用说明
76 0
权限控制之动态权限注解使用说明|学习笔记
|
数据挖掘 开发者
规则的产生| 学习笔记
快速学习规则的产生。
83 0
规则的产生| 学习笔记
|
监控 Java Linux
系统规则|学习笔记
快速学习系统规则
65 0
|
云安全 安全 数据库
授权机制|学习笔记
快速学习授权机制
382 0
授权机制|学习笔记
|
云安全 存储 安全
访问控制概述|学习笔记
快速学习访问控制概述
409 0
访问控制概述|学习笔记
|
负载均衡 数据安全/隐私保护 开发者
配置访问控制|学习笔记
快速学习配置访问控制
318 1
配置访问控制|学习笔记