更新 Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs
Contains有个问题就是 如果我两个api的地址重复率比较高,就拿通知接口举例子,接口1是 sysNotice/page, 接口2是sysNotice/pageReceived 。黑名单中有一个sysNotice/page这个接口,用Contains方法sysNotice/page这块就重复了,我勾选了通知菜单,但是我访问sysNotice/pageReceived就提示没有权限。因为,Contains就匹配上了 sysNotice/page,所以不能用Contains,用EndsWith比较合适,匹配和path最后一致就行
This commit is contained in:
parent
e070ca1eaa
commit
9249de0235
@ -92,11 +92,11 @@ namespace Admin.NET.Web.Core
|
||||
var roleApis = await sysRoleService.GetUserApiList();
|
||||
|
||||
// 若当前路由在按钮权限集合里面则放行
|
||||
if (roleApis[0].Exists(u => path.Contains(u, StringComparison.CurrentCultureIgnoreCase)))
|
||||
if (roleApis[0].Exists(u => path.EndsWith(u, StringComparison.CurrentCultureIgnoreCase)))
|
||||
return true;
|
||||
|
||||
// 若当前路由在已接口黑名单里面则禁止
|
||||
return roleApis[1].TrueForAll(u => !path.Contains(u, StringComparison.CurrentCultureIgnoreCase));
|
||||
return roleApis[1].TrueForAll(u => !path.EndsWith(u, StringComparison.CurrentCultureIgnoreCase));
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user