我了解从任何位置提供 jsf 页面/资源的方法之一是通过 RequestDispatcher#forward()
例如对http://domain/contextpath/someotherlink.xhtml的响应可以被映射
/WEB-INF/serving.xhtml
资源位置与request.getRequestDispatcher("/WEB-INF/serving.xhtml").forward(request, response)
但是映射页面的位置会显示在操作组件中,例如<h:form>
即<form method="post" action="/contextpath/WEB_INF/serving.xhtml" >
即使使用OCPsoft Rewrite URLRewriteFilter。
@Alex Tsurika 提供了一个示例,但 JSF 专家 @Balusc评论了这种方法的安全漏洞,尽管他提出了相同的调度方法
问题:
正如@Balusc 提出的那样,如何缓解这个安全漏洞(更新:我猜没有,因为@Balusc 在评论中清除了它)
如何
<form method="post" action="/contextpath/someotherlink.xhtml" >
显示而不是<form method="post" action="/contextpath/WEB_INF/serving.xhtml" >
以解决@Paul H提出的问题
是否可以提交从 WEB-INF 中的 JSF 页面位置呈现的表单?
谢谢。