我有一个全局过滤器,我想在基于 scalatra 的 API 中实现它。为了简单起见,我希望任何具有变量 foo 和值 bar 的 API 调用都抛出 403。我从继承链开始这个问题。
class NoFooBarRouter extends ScalatraServlet{
before() {
if(params.getOrElse("foo", "") == "bar") //params is empty here.
halt(403, "You are not allowed here")
else
pass()
}
}
class APIRouter extends NoFooBarRouter{
get("/someurl/:foo") {
"Hello world!"
}
}
这不起作用。在调试过程中,我注意到无论是否有参数,params 变量始终为空。是否有更好的方法或者是否有另一种方法可以从之前的过滤器中提取参数?