У меня есть глобальный фильтр, который я хотел бы реализовать в своем API на основе скалятры. Для простоты я хочу, чтобы ЛЮБОЙ вызов API, имеющий переменную foo с полосой значений, выдавал 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 всегда пуста, независимо от того, есть ли параметр или нет. Есть ли лучший подход или есть другой метод для извлечения параметров из предварительного фильтра?