私は春のフレームワークでcsrf保護を持っています。そのため、リクエストごとにajax呼び出しからヘッダーでcsrfトークンを送信しますが、これは完全に機能しています。
<meta name="_csrf" content="${_csrf.token}"/>
<meta name="_csrf_header" content="${_csrf.headerName}"/>
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
In ajax
beforeSend: function(xhr) {
xhr.setRequestHeader(header, token),
xhr.setRequestHeader("username", "xxxx1"),
xhr.setRequestHeader("password", "password")
}
csrfトークンを生成し、Postman Rest Clientのヘッダーセクションに含める? Postman Rest Clientからcsrfトークンを送信するのを手伝ってもらえますか?
これを一貫して行う最も簡単な方法なので、毎回トークンを取得する必要はありません。
注:ブラウザのCookieにアクセスするには、PostMan Interceptorをインストールしてアクティブにする必要があります
XSRF Cookieを環境変数に保存するテスト付きのログインメソッドを作成します。テストタブでこのコードを投稿します
//Replace XSFR-TOKEN with your cookie name
var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN");
postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);
EDIT5.5.2以降の郵便配達員を使用している場合は、Cookieもデコードする必要があります。また、Cookieを取得する別の方法も提供しています。 @Sacapucesが指摘するように
pm.environment.set("xsrf-token", decodeURIComponent(pm.cookies.get("XSRF-TOKEN")))
これで、xsrf-tokenを含む環境変数が作成されます。
ログイン方法を保存します
作成する新しい投稿を作成し、ヘッダーにXSRF-Token-Header Keyとそれにアクセスするハンドルバーの環境変数を追加します{{}}
以下の手順に従って、csrfトークンでRESTを送信できます。
ログイン時にスプリングセキュリティによって自動的に生成されたCSRFトークン。応答ヘッダーに表示されます。
CSRFトークンは、ヘッダーのCSRFトークンでX-CSRF-TOKENを設定することにより、後続の要求で使用できます。
まず、PostMan Interceptorをインストールし、ブラウザのCookieにアクセスできるようにアクティブ化する必要があります。
GETリクエストを作成してCSRFトークンを取得する必要があります:ヘッダー: "XSRF-TOKEN"および値: "Fetch"
Cookieタブにトークンが表示され、コピーできます(注意:Cookieの名前の付け方をSpringに設定できます。Cookieには「XSRF-TOKEN」以外の名前が付いている可能性があります。注意:この空白文字は改行からのトークン)
POSTリクエストを作成し、ヘッダーを次のように設定します。
X-CSRF-Tokenをキーとして、FETCHをGETリクエストヘッダーの値として入力すると、レスポンスヘッダーでトークンを受け取ります
環境変数などを設定したくない場合は、ここが最も速い解決策です