2.2.1 にアップグレードしたばかりで、CSRF 処理で何が起こっているのか少し混乱しています。デフォルトの構成では、セッション データに明らかに csrfToken があるにもかかわらず、常に「Missing CSRF token」エラーが発生します。
もう少し突っ込んcsrf.sign.tokens
で、設定でfalseに設定することでこれを防ぐことができることがわかりました(デフォルトはtrueです)。何らかの理由で次の行:
token.flatMap(Crypto.extractSignedToken)
.map(token => Token(Crypto.signToken(token)))
inCSRF.getToken
は私に None トークンを与えています。トークン署名が有効になっている場合にのみCSRF が失敗する原因を知っている人はいますか? 私は (故意に) CSRF 関連の設定のデフォルトを変更していません。どういうわけか、トークンの形式が間違っていてCrypto.extractSignedToken
失敗しているのではないかと思いますが、なぜそうなるのかわかりません。
アプリケーションの CSRF 保護は、グローバルWithFilters(CSRFFilter())
メソッドを使用して行われます。