2016-12-08 1 views
0

私はAWS APIゲートウェイ内に多数のAPIリソースを作成しました。これらはすべて正常に動作しています。APIゲートウェイGETとPOSTがキャッシュされる - CORSの疑いがある

私はまた、いくつかのユーザーマニュアルとテストのためSwaggerUIに定義をエクスポートします。

私はすべてのコールでCORSを有効にしていると予想されるように、それぞれの作品を呼び出します。

私が気づいた問題は、特定のエンドポイント(GETメソッドを使ってhttps://apiserver/api/helloWordと言う)を呼び出すと、swagger/Postmanを通して、うまく動作し、すぐにPOSTへの呼び出しを変更して失敗します。 403が禁止されています - 私が5〜10分待つと、POSTが動作し、GETは失敗します...ほとんどオプションオプションがキャッシュされているかのようです。

私は運と(アクセス・コントロール・マックスエイジ、のCache-Control、有効期限などを含む)私のオプションの方法にいくつかのヘッダを追加しようとしています。

各API呼び出しでは、APIキーとAuthtokenが使用されます。これは、メソッドを変更するまで、最初の呼び出し(および同じメソッドの場合は他のすべての呼び出し)で正常に機能します。

API Gatewayのテストでは、これを正しく実行しています.Suagger UIやPostmanを使用してコールをテストするとすぐに、Options(Fiddlerから通知されます)を使用しませんが、この問題が発生します。すべてがよさそうだデータ - それは[オプション]をフェッチGETやPOSTメソッドへのルーティング各呼び出しを示して

フィドラーのログは、本当に便利ではありません。

どのようなアイデアですか?

+0

これを行うように設定していない限り、PostmanはOPTIONSメソッドを呼び出すべきではありません。 –

答えて

2

カスタムオーソライザを使用していますか?その場合は、キャッシュTTLを0に設定してもう一度試してください。これで問題が解決された場合は、作成しているポリシーを承認者から修正する必要があります。

承認者のポリシーは、API全体でにキャッシュされます。したがって、あなたが呼び出されたメソッドだけを許可するポリシーを送り返すと(GETが呼び出され、GETメソッドを許可したポリシーを送ったとします)、POSTメソッドを呼び出すと403を取得します。クライアントトークンの認可者のグローバルポリシー。同じトークンを持つAPI全体の呼び出しは、ラムダ関数に戻る必要がなくなり、お金と待ち時間が節約されます。

+0

入力いただきありがとうございます、私は私たちのポリシーを変更し、それが役立つかどうかを見ていきます。 – Hexie

関連する問題