Security 如何不允许Facelets源通过URL在浏览器中显示

Security 如何不允许Facelets源通过URL在浏览器中显示,security,jsf,servlets,facelets,Security,Jsf,Servlets,Facelets,在my web.xml中,我有: 我得到了一些页面,它们存储在我的{project}/webapp/view/文件夹中 比如:localhost/mybodule/view/index.xhtml 并且能够查看所有facelets源。如何将其改为404错误?因为我的问题与JSF和404错误抛出有关 我想出了一个答案: 将设置添加到web.xml: <context-param> <param-name>facelets.RESOURCE_RESOLVER</para

在my web.xml中,我有:

我得到了一些页面,它们存储在我的{project}/webapp/view/文件夹中

比如:localhost/mybodule/view/index.xhtml


并且能够查看所有facelets源。如何将其改为404错误?

因为我的问题与JSF和404错误抛出有关

我想出了一个答案:

将设置添加到web.xml:

<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>our.company.CustomResourceResolver</param-value>
</context-param>
这里我们假设所有页面都位于/WEB-INF/pages文件夹中

因此,每当异常发生时,它都会被解释为404


而且:我们应该从web.xml中删除-如果我们想向用户显示他没有访问特定资源的权限,那么这个家伙很好,但在我们的例子中,我们不想显示这一点。我们根本不想让他看到这个资源存在的事实。

似乎我发现复制将检查:也相关:此:帮助。这是很重要的一点
<context-param>
<param-name>facelets.RESOURCE_RESOLVER</param-name>
<param-value>our.company.CustomResourceResolver</param-value>
</context-param>
@Override
public URL resolveUrl(String path) {
 try {
   String fixedPath = "/WEB-INF/pages";

   return getResolvedPath(path, fixedPath);
} catch(IOException e) {
  throw new FacesException(e);
}

}