我是靠谱客的博主 忧伤板凳,最近开发中收集的这篇文章主要介绍Spring Cloud Alibaba入门实践(十五)-Sentinel之授权规则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是授权规则?

当我们需要根据调用来源来判断该次请求是否允许放行,这时候可以就使用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之授权规则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部