无法使用tomcatvalidation对CSRF令牌的发布请求
我正在开发一个tomcat应用程序。 我正在尝试添加catlina库提供的CSRF身份validation令牌(org.apache.catalina.filters.CsrfPrevention)。 我在web.xml中添加了filter
CsrfFilter org.apache.catalina.filters.CsrfPreventionFilter entryPoints /Login CsrfFilter /*
我还更新了login.jsp
<form action="
现在当我运行服务器时,登录页面正在渲染。 当我输入用户名和密码时,浏览器使用CSRF_NONCE发送Post请求到Login servlet http:// localhost:9090 / Login?x = true&org.apache.catalina.filters.CSRF_NONCE = 7DE88A93A526E465566864684FEB01C9 。 它具有CSRF_NONCE但仍然响应具有状态403.我已经阅读了许多文档但是找不到任何解决方案来validationpost requet。
我还要说我需要对所有url进行编码,但无法找到我应该怎么做。 我需要为此编写filter吗?
最后我得到了答案。 我在这里张贴给其他人。
为了呈现JSP,我使用了RequestDispatcher对象
dispatcher.forward(request, response);
因此,filter未应用于给定的URL。 最后我找到了答案。 我应该在Servlet处理程序中使用带有filter或response.sendRedirect方法的参数中的dispatcher。
http://www.theserverside.com/news/thread.tss?thread_id=34168