sentinel--基础--06--授权规则--黑白名单
·
sentinel–基础–06–授权规则–黑白名单
1、授权规则
授权规则可以对调用方的来源做控制,有白名单和黑名单两种方式
- 白名单:来源(origin)在白名单内的调用者允许访问
- 黑名单:来源(origin)在黑名单内的调用者不允许访问

2、黑白名单
2.1、需求
假设/getUserId/{id}的接口请求,我们认为id>=3的请求,来自内网,id<3的请求来自于外网,而我们不允许外网访问。
注意:上面只是假设,在实际项目里面,区分服务来源,我们可以通过ip,头部信息,或许请求参数的值来表示请求来源。
2.2、代码
package com.example.demo2.business.config;
import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Component;
/**
* @ClassName: RequestOriginParserImpl
* @Description 请求来源接口,返回请求来源名称
* @Author feizhou
* @Date 2024/5/25 22:18
* @Verson 1.0
**/
@Component
public class RequestOriginParserImpl implements RequestOriginParser {
@Override
public String parseOrigin(HttpServletRequest request) {
String requestURI = request.getRequestURI();
if (requestURI.contains("/getUserId/")) {//只处理这种请求,其他请求都设置为内网
String idStr = requestURI.substring(requestURI.lastIndexOf("/") + 1);
if (Integer.valueOf(idStr) >= 3) {//内网
return "inner";
} else {//外网
return "outer";
}
}
return "inner";
}
}

2.3、配置

2.4、测试


更多推荐



所有评论(0)