AngularベースのWebアプリケーションは、異なるドメインおよびコンテキストパス上で動作するエンタープライズポータルと統合されています。私は着信要求を検証するために、Spring SecurityベースのCSRFトークンを使用しています。アプリケーションは完全にローカルで動作していますが、ポータルと統合すると、AngularはXSRFトークンを読み取ることができず、要求ヘッダー内のX-XSRFトークンをAPI呼び出しに設定できないため、ポストコールはすべて失敗します。調査の結果、私はポータルと私たちのアプリケーションのコンテキストパスが異なることを発見したので、春はXSRFトークンをPath、Expires、Nullとしてドメインを設定しています。春にそれを作成するときに、特定のCookieパスにXSRFトークンを設定できる方法はありますか?異なるコンテキストパスにCSRFトークンを設定する方法
注:フィルターを作成し、要求ヘッダーからCookieを読み取り、必要なパスを使用して新しいCookieをブラウザーにドロップする代替ソリューションがあります。私は設定レベルで解決策を探しています。
private CsrfTokenRepository getCsrfTokenRepository() {
CookieCsrfTokenRepository tokenRepository = CookieCsrfTokenRepository.withHttpOnlyFalse();
tokenRepository.setCookiePath("/");
return tokenRepository;
}
をして、機能configure(...)
で行を変更する:コンフィギュレーションセキュリティ(Javaファイル)で