Java 无法使用tomcat验证CSRF令牌的post请求

Java 无法使用tomcat验证CSRF令牌的post请求,java,tomcat,web.xml,csrf-protection,catalina,Java,Tomcat,Web.xml,Csrf Protection,Catalina,我正在开发一个tomcat应用程序。我试图添加catlina库(org.apache.catalina.filters.CsrfPrevention)提供的CSRF身份验证令牌。我已经在web.xml中添加了过滤器 CsrfFilter org.apache.catalina.filters.CsrfPreventionFilter 入口点 /登录 CsrfFilter /* 我还更新了login.jsp <% String url = '/Login?x=true'; S

我正在开发一个tomcat应用程序。我试图添加catlina库(org.apache.catalina.filters.CsrfPrevention)提供的CSRF身份验证令牌。我已经在web.xml中添加了过滤器


CsrfFilter
org.apache.catalina.filters.CsrfPreventionFilter
入口点
/登录
CsrfFilter
/*
我还更新了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请求以使用CSRF\u NONCE登录servlet。其当前具有CSRF,但仍然响应状态为403。我已经阅读了很多文档,但找不到任何解决方案来验证post请求


我还说,我需要编码所有的网址,但找不到我应该怎么做。我需要为此编写过滤器吗?

最后我得到了答案。我把它贴在这里给其他人看

为了呈现JSP,我使用了RequestDispatcher对象

dispatcher.forward(request, response);
因此,筛选器未应用于给定的url。最后我找到了答案。我应该在参数中使用dispatcher,在Servlet处理程序中使用filter或response.sendRedirect方法

dispatcher.forward(request, response);