alibaba / alibaba/Sentinel

[BUG] 关于热点参数不生效的讨论

Open
#3,453 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
23.1k
Forks
8.1k
PR merge metrics
No merged PRs in 30d

Description

我在sentinel-dashboard配置了一个接口的热点规则但是没有生效,于是我就进行了DEBUG调试
我发现当一个接口被请求之后,首先进入的是一个SentinelWebInterceptor
![image](https://github.com/user-attachments/assets/36deb1af-05e5-45d5-b12f-9a3e362756fd)
SentinelWebInterceptor继承AbstractSentinelInterceptor抽象类,preHandle方法被调用
![image](https://github.com/user-attachments/assets/97760164-41ef-43e6-98ad-b1e5f80cf275)
在这个方法中会调用SphU.entry方法
Entry entry = SphU.entry(resourceName, ResourceTypeConstants.COMMON_WEB, EntryType.IN);
但是SphU.entry没有传递当前接口请求的参数
![image](https://github.com/user-attachments/assets/300fb199-cc7b-4948-a424-73ecba38971b)

在SphU.entry方法内部它传递的是一个默认常量OBJECTS0(对象数组,长度为0)
![image](https://github.com/user-attachments/assets/b1cd9a15-1e97-4040-bd5d-92c6df3c5bdf)

最终导致在ParamFlowSlot类中方法entry被调用的时候args是一个长度为0的对象数组
![image](https://github.com/user-attachments/assets/eb960074-a2e4-4349-9da2-2dd5c15c2046)

在ParamFlowChecker类中方法passCheck始终true
![image](https://github.com/user-attachments/assets/426d97c7-7e43-4ab6-8fe2-4addd102a430)

上面是我调试的结果

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.