-
Notifications
You must be signed in to change notification settings - Fork 511
Open
Description
当路径中连续两个item为相同字符串时会出现验证错误
eg:
当我们调用
$policy->check($path)
如果$path传入的是类似这样
/Api/Admin/Merchant/Merchant/getMerchantList
因为有连续两个 Merchant 则会获取不到最后一个 getMerchantList
在class EasySwoole\Policy\PolicyNode 中的 search() 方法 调试可以看到
大约123行至125行中
是因为这个判断提前返回了
if($name == $this->name){
return $this;
}
如果两个名字相同则返回,并不会继续向下判断。
经测试改成如下判断可以解决:
if($name == $this->name && !isset($this->leaves[$name]) && !isset($this->leaves['*'])){
return $this;
}
如需讨论可在issue回复。
Metadata
Metadata
Assignees
Labels
No labels