Pedestal と Reitit を使用した Clojure アプリケーションがあり、origin ヘッダー パラメータを必須にする必要があります。
;; deps
[io.pedestal/pedestal.service "0.5.5"]
[pedestal/pedestal.jetty "0.5.5"]
[reitit-pedestal "0.5.5"]
[reitit "0.5.5"]
しかし、自分のスキーマを入れると、リクエストは例外をスローします。
(s/defschema my-request
{:header {:origin s/Str}})
["/my-route"
{:get {:parameters my-request
:handler my-handler}}]
例外:
:errors {:origin missing-required-key}
{
"message": "Bad Request",
"exception": "clojure.lang.ExceptionInfo: clojure.lang.ExceptionInfo in Interceptor :reitit.http.coercion/coerce-request -
Request coercion failed: #reitit.coercion.CoercionError{:schema {:origin java.lang.String, Keyword Any}, :errors {:origin missing-required-key}}
リクエスト
curl -X GET "http://localhost:3000/my-route -H "accept: application/json" "origin: TEST" -H "user-agent: test"
CURL リクエストは機能しますが、問題は GET メソッドを使用した Swagger UI のみにあります。
get メソッドの Swagger は、cors の攻撃を避けるためにオリジン ヘッダー パラメータを送信しないようです。
これを回避できますか?
ご協力いただきありがとうございます