0

scalatra ベースの API に実装したいグローバル フィルターがあります。簡単にするために、値 bar を持つ変数 foo を持つすべての 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!"
    }        
}

これは動作しません。デバッグ プロセス中に、param の有無に関係なく、params 変数が常に空であることに気付きました。より良いアプローチがありますか、またはフィルター前からパラメーターを抽出する別の方法がありますか?

4

1 に答える 1