Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何保护XHTML文件不被编辑_Java_Jsf_Jsf 2_Xhtml - Fatal编程技术网

Java 如何保护XHTML文件不被编辑

Java 如何保护XHTML文件不被编辑,java,jsf,jsf-2,xhtml,Java,Jsf,Jsf 2,Xhtml,我正在开发一个JSF应用程序,归档(war)将提供给多个客户,并将分别部署在他们自己的Tomcat服务器上。这只是一个前端应用程序,它使用web服务与远程服务器通信 在我的JSF应用程序中,一些选项卡和面板是根据登录用户的ORG\u ID和Roles有条件地呈现的。所有这些限制都以ELs的形式写入.xhtml页面: <rich:tab header="Registration" rendered="#{permissionController.hasSuperRole()}"/>

我正在开发一个JSF应用程序,归档(war)将提供给多个客户,并将分别部署在他们自己的Tomcat服务器上。这只是一个前端应用程序,它使用web服务与远程服务器通信

在我的JSF应用程序中,一些选项卡和面板是根据登录用户的
ORG\u ID
Roles
有条件地呈现的。所有这些限制都以ELs的形式写入
.xhtml
页面:

<rich:tab header="Registration" rendered="#{permissionController.hasSuperRole()}"/>


由于此应用程序部署在客户场所,因此他们可以编辑
.xhtml
文件并删除这些限制。有没有办法通过加密xhtml文件、检查上次修改的日期来克服这个问题?

这个问题与java jsf或(x)html完全无关。这是一个普遍的问题,您永远不应该信任客户机(就像您永远不应该信任的Web应用程序一样,在Web应用程序中,用户可以在浏览器中操作html/javascript)


解决方案:只需在Web服务中执行附加授权即可

您可以重复检入操作方法。它是Java代码,不能在客户端更改。也许这不是最好的建议,但至少可以防止某些受限操作。这并不容易,但您可以创建自己的jsf impl版本。我认为这样的解决方案需要扩展
com.sun.faces.facelets.compiler.compiler
,并附加检查xhtml文件完整性的实现。“只需”在Web服务中执行附加授权。。。