1

私は Suave アプリを作成していますが、元の IP がルートの承認済みリストにない場合は停止したいと考えています。このために、私は小さなフィルターを書きました:

let RemoteIp (ipList: System.Net.IPAddress List) (x: Http.HttpContext) = 
    if (ipList |> List.map (fun ip -> x.clientIpTrustProxy.Equals ip ) |> List.contains true)
    then
        async.Return (Some x)
    else
        async.Return None

それから私はうまくいきます

        Filters.path "/cache" >=> RemoteIp authorizedIps >=> Filters.GET >=> Successful.OK ""

そのため、許可されたリストの IP からの場合にのみ通話を処理できます。そうでない場合は、そのまま続行します。しかし、私が本当にやりたいことは、403 を返すことです。現在、ルート検索を短絡しているだけです。

ブランチコンビネータのようなものはありますか?

4

1 に答える 1