Je suis nouveau à Icefaces et Facelets à la fois, mais je les utilise sur un nouveau projet. J'ai tout configuré et fonctionne bien. Cependant, quand je visite mywebapp/file.xhtml, la source entière de modèle de facelets apparaît dans mon navigateur. Comment pourrais-je cacher cela pour empêcher les utilisateurs de voir mes modèles côté serveur?Cacher .xhtml source - facelets/icefaces?
4
A
Répondre
4
Placez tous les modèles dans WEB-INF/someDirectory/templates.
Puis, selon la documentation facelets mettre cela à l'intérieur de votre web.xml pour tous les autres fichiers xhtml:
<security-constraint>
<display-name>Restrict XHTML Documents</display-name>
<web-resource-collection>
<web-resource-name>XHTML</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>Only Let 'developer's access XHTML pages</description>
<role-name>someone</role-name>
</auth-constraint>
</security-constraint>
1
Dans le web.xml doit être une entrée qui vous permet de configurer le comportement des modèles xhtml (afficher/cacher ..)
Si vous déplacez les fichiers .jsp dans le dossier WEB-INF (vous devez reconfigurez le chemin jsp pour JSF), vous ne pouvez pas y accéder par URL. Chaque serveur J2EE/Webcontainer que je connais agit de cette manière.
Une autre façon est un filtre de servlet auto écrite, etc.
Mais, pourquoi voulez-vous cacher vos modèles?
Je suis surpris des modèles ne sont pas cachés par défaut. Les modèles exposent les composants internes de votre application et les fuites peuvent constituer un risque pour la sécurité. – Haakon
Au lieu de demander pourquoi cacher les modèles je demanderais pourquoi les exposer? Pourquoi devrions-nous montrer la disposition de modèle de notre site Web au monde? – arg20