我正在開發一個tomcat應用程序。我正在嘗試添加由catlina庫(org.apache.catalina.filters.CsrfPrevention)提供的CSRF身份驗證令牌。我已經加入過濾到web.xml 無法使用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>
而且我已經更新了login.jsp的
<% 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>
現在,當我運行的服務器登錄頁面的渲染。當我輸入用戶名和密碼瀏覽器正在發送Post請求登錄servlet與CSRF_NONCE http://localhost:9090/Login?x=true&org.apache.catalina.filters.CSRF_NONCE=7DE88A93A526E465566864684FEB01C9。它擁有CSRF_NONCE,但仍然是響應狀態403.我已閱讀了許多文檔,但找不到任何解決方案來驗證郵寄請求。
我還記得,我需要編碼所有的網址,但無法找到我應該怎麼做。我需要爲此編寫過濾器嗎?