Pab*_*mez 9 java url-routing spark-java
我正在尝试制作一个与以下网址匹配的过滤器:
/foo 和 /foo/*
所以任何事情都在/foo/基础情况下/foo
我有这个过滤器:
Spark.before("/foo/*", (request, response) -> {
String ticket = request.cookie("session");
if (ticket == null) {
Spark.halt(302);
}
});
Run Code Online (Sandbox Code Playgroud)
但是当我进入时,这当然不会执行 /foo
我尝试了以下但没有运气:
/foo*
/foo.*
/foo/
反正有没有实现这个目标?或者也许使用URL列表?这样我就可以将两个url分配给同一个过滤器.
并且请不要说将函数存储在变量中,以便我使用它两次,因为我觉得它根本不干净..
根据https://github.com/perwendel/spark/blob/1ecd428c8e2e5b0d1b8f221e9bf9e82429bd73bb/src/main/java/spark/route/RouteEntry.java#L31(路径匹配发生的地方),它看起来不像你想要的要做的可能.
RouteEntry代码将给定的模式和给定的URL分隔为"/"字符,然后为每个组件查找"匹配"(相等或通配符).
这是一个更详细的解释:
url /foo/blah有2个部分(在上面链接的RouteEntry代码的术语中),而/foo有1个部分.对于与第一个匹配的模式,它必须有2个部分:/foo/*是唯一有意义的部分.但是这个模式有2个部分,/foo如果检查第49行和第78行,则会失败.唯一的特殊情况是第71行的黑客攻击,它应该使模式/foo/*匹配url /foo/,但不是/foo.
| 归档时间: |
|
| 查看次数: |
3089 次 |
| 最近记录: |