Fichiers en /WEB-INF
le dossier sont en effet pas accessibles au public par l'utilisateur final. Si vous ne pouvez pas avoir quelque chose qui ressemble http://localhost:8080/contextname/WEB-INF/some.xhtml
. Ce serait un risque de sécurité que l'utilisateur serait en mesure de visualiser entre autres /WEB-INF/web.xml
et ainsi de suite.
Vous pouvez cependant utiliser l' /WEB-INF
dossier pour placer le maître modèle fichiers, les fichiers et les fichiers de balises dans. Par exemple, le modèle suivant client page.xhtml
qui est placé à l'extérieur de /WEB-INF
et est accessible par l' http://localhost:8080/contextname/page.xhtml
:
<ui:composition template="/WEB-INF/templates/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<ui:define name="content">
...
<ui:include src="/WEB-INF/includes/include.xhtml" />
...
</ui:define>
</ui:composition>
L'avantage de placer des modèles de documents et les fichiers à inclure, en /WEB-INF
, c'est que l'utilisateur final ne sera pas en mesure d'ouvrir directement en entrant/deviner son URL dans le navigateur l'adresse de la barre. Les pages normales et le modèle des clients qui sont destinés à être directement accessible ne doit pas être placé en /WEB-INF
le dossier.
Par ailleurs, le composite fichiers de composant sont aussi ne doit pas être accessible au public, mais ils sont par la spécification doivent être placés dans /resources
le dossier qui est par défaut publiquement accessibles. Si vous vous assurez que vous accédez à toutes les ressources à l'aide de l' effet fourni des composants de sorte qu'ils ne sont jamais accessibles par /resources
dans l'URL (mais plutôt en /javax.faces.resource
), alors vous pouvez ajouter la contrainte suivante pour web.xml
pour bloquer tous les accès du public à l' /resources
le dossier:
<security-constraint>
<display-name>Restrict direct access to the /resources folder.</display-name>
<web-resource-collection>
<web-resource-name>The /resources folder.</web-resource-name>
<url-pattern>/resources/*</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>