2つのSpring Boot RESTアプリケーションがあります。アプリケーションの1つがSpring RestTemplate
で他を呼び出します。これらのアプリケーションをサーバーとクライアントのアプリケーションと呼ぶことができます。RestTemplateでCSRFトークンを渡す方法
サーバーアプリケーションは、クッキーとしてXSRF-TOKEN
トークンを送信しています。これはUI部分に対して行われます。しかし、サーバーからブラウザからの要求とクライアントアプリケーションからの要求を区別するための方法はありません(私が知っていることはありません)。だから私は選択的にCSRF
トークンをサーバーからブラウザにのみ送ることはできません。
RestTemplateがCSRFクッキー/ヘッダーを検出してリクエストを再生できるように、Springに組み込まれたメカニズムがありますか?
どうすれば手動で同じ操作を行うことができますか?私はCSRF例外が発生するのを待ってから、応答のクッキーを読んでそれを再生する必要がありますか?
それが1回実行されていればOKであるが、RestTemplate
のコールがすべて正しくないようにするために例外を待つ。
トークンを一度保存して次回から設定しようとするかもしれませんが、どのように複数のサーバーアプリケーションのシナリオ(次に実装する必要があります)を処理しますか? CSRF
のように、1つのサーバーアプリケーションのトークンが他のトークンに対して無効であるため、単一のトークンを保存することはできませんが、新しいサーバーアプリケーションURLごとにエントリを持つトークンのマップを保存する必要があります。
これはすべて複雑すぎるように見えますが、私はむしろSpringでそれを処理するようにします。
すべての手がかりは評価されています。私はCSRFのクッキーを取得するために呼び出すことができ、サーバアプリで保護せずにRESTサービスを実装している今の
おかげ