6.7.4 授权规则
授权规则是根据调用方调用资源的请求判断是否应该被允许通过。
Sentinel
控制台提供了黑白名单的授权方式,配置白名单,则只有白名单上的应用调用资源;若配置黑名单,则拒绝黑名单上的应用的调用请求。
6.7.4.1 定义请求解析器
在任一模块中定义一个请求源解析器实现Sentinel
框架的RequestOriginParser
@Component
public class CustomRequestOriginParser implements RequestOriginParser {
public String parseOrigin(HttpServletRequest httpServletRequest) {
// 请求解析逻辑,检测请求中的 origin 参数
String origin = httpServletRequest.getParameter("origin");
if (StringUtils.isEmpty(origin)) {
throw new RuntimeException("origin不能为空");
}
return origin;
}
}
6.7.4.2 添加授权规则
如下:针对/test
接口设置一个授权白名单,名单为app
(可以设置多个,用逗号隔开)。
6.7.4.3 测试
访问/test
接口
不加origin
参数,结果失败,提示失败信息 “origin不能为空”
添加origin
参数,值设置为mobile
,再次请求被拒绝
把origin
参数值改为app
,请求通过
黑名单同理,就不一一试了