I am fixing some old defects and as part of one defect, I need to make sure that some requests are being only POST to the JSP page instead of a GET request. The application have
Add security constraints to your web.xml prohibiting the request.
Two solutions:
Add a <security-constraint> with an empty <auth-constraint> on an <url-pattern> of *.jsp and <http-method> of GET which will block GET requests on JSP files to everyone (as suggested by McDowell):
<security-constraint>
<display-name>Restrict GET requests on JSP files</display-name>
<web-resource-collection>
<web-resource-name>JSP files</web-resource-name>
<url-pattern>*.jsp</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint />
</security-constraint>
Create a Filter which listens on an <url-pattern> of *.jsp and does basically the following in the doFilter() method.
if (((HttpServletRequest) request).getMethod().equals("GET")) {
((HttpServletResponse) response).sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
} else {
chain.doFilter(request, response);
}
No need to copypaste the same over all JSP pages which would only be prone to IllegalStateException: response already committed errors.