概述
什么是授权规则?
当我们需要根据调用来源来判断该次请求是否允许放行,这时候可以就使用Sentinel的来源
访问控制的功能,对应的操作就是加上相应的授权规则。
点击新增授权规则,出现如下选项:
- 资源名:唯一名称,默认是请求路径,可自定义。
- 流控应用:调用方,也就是调用来源了,比如app端调用或这pc端调用。
- 授权类型:
白名单:只有请求来源位于白名单内时才可通过。
黑名单:请求来源位于黑名单时不通过,其余的请求通过。
测试授权规则
需要先自定义来源处理规则,新增RequestOriginParserDefinition类:
package com.example.mallorder.service.impl;
import com.alibaba.csp.sentinel.adapter.servlet.callback.RequestOriginParser;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
@Component
public class RequestOriginParserDefinition implements RequestOriginParser {
@Override
public String parseOrigin(HttpServletRequest httpServletRequest) {
String serviceName = httpServletRequest.getParameter("serviceName");
return serviceName;
}
}
以上配置就表示解析serviceName这个属性,说明开发用serviceName这个字段来标识来源。
配置一个授权规则:
这个规则表示/order/message1接口,只有serviceName参数值为pc的才能够正常访问。
浏览器访问http://localhost:10020/order/message1?serviceName=pc,接口正常响应:
其余的参数,都会被限流,如下:
这里还有一个特殊情况,不加serviceName参数,接口也能够正常响应,如下:
该特殊情况可以通过代码做限制与校验来避免。
最后
以上就是忧伤板凳为你收集整理的Spring Cloud Alibaba入门实践(十五)-Sentinel之授权规则的全部内容,希望文章能够帮你解决Spring Cloud Alibaba入门实践(十五)-Sentinel之授权规则所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复