私はtomcatアプリケーションで作業しています。私はcatlinaライブラリ(org.apache.catalina.filters.CsrfPrevention)が提供するCSRF認証トークンを追加しようとしています。私は tomcatでCSRFトークンのポストリクエストを認証できません
<filter>
<filter-name>CsrfFilter</filter-name>
<filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>
<init-param>
<param-name>entryPoints</param-name>
<param-value>/Login</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CsrfFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
はまた、私は
<% String url = '/Login?x=true';
String encodeUrl = response.encode(url);
%>
<form action="<%=urlEncode%" action="Post">
<input type="text" name="username"/>
<input type="password" name="password"/>
<button type="submit">Login</button>
</form>
は、今私は、ログインページがレンダリングされているサーバを実行しているときにlogin.jspを更新したweb.xmlにフィルタを追加しました。ユーザ名とパスワードを入力すると、ブラウザはCSRF_NONCEでログインサーブレットへの投稿要求を送信しますhttp://localhost:9090/Login?x=true&org.apache.catalina.filters.CSRF_NONCE=7DE88A93A526E465566864684FEB01C9そのCSRF_NONCEを持っていますが、依然としてレスポンスのステータスは403です。私は多くのドキュメントを読んでいますが、ポストリクエントを認証するソリューションは見つかりませんでした。
私はすべてのURLをエンコードする必要がありますが、どうすればいいのか分からないことがあります。そのためにフィルタを記述する必要はありますか?