我正在尝试在网关上编写api权限筛选器。应该禁止不带有特定角色的令牌访问资源。除了包含 @PathVariable
参数。例如,具有uri的api /api/v1/query/{id}
,参数 id
可能是个问题 uuid
在某些情况下,可能是 long
其他情况下的价值。除了添加越来越多的regex模式,还有更好的方法吗?gateway的总体目标是消耗尽可能少的时间。
我正在尝试在网关上编写api权限筛选器。应该禁止不带有特定角色的令牌访问资源。除了包含 @PathVariable
参数。例如,具有uri的api /api/v1/query/{id}
,参数 id
可能是个问题 uuid
在某些情况下,可能是 long
其他情况下的价值。除了添加越来越多的regex模式,还有更好的方法吗?gateway的总体目标是消耗尽可能少的时间。
1条答案
按热度按时间6l7fqoea1#
不管怎样,我还是想出了一个合适的解决办法。这个
@PathVariable
在所有项目中都位于url的最后或最后两部分。例如/api/v1/data/query/{uid}/{pid}
或者类似的。所以我们可以用ApacheCommon的StringUtils#lastIndexOf()
以及StringUtils#substring()
.要编写用于演示的代码,请同时导入hutool和commons-lang3。
结果如下:
通过将uri简化为最简单的,在我的例子中是
/api/v1/data/query
,很容易编写相关代码来检查角色。