Page Welcome (index.xhtml dans la racine des pages Web) :
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"> <h:head> <title>Wecome</title> </h:head> <h:body> Hello ! <br/> <h:link outcome="/connect/index" value="Page pour utilisateurs connectés"/> <br/> <h:form> <h:commandLink action="/admin/index" value="Page pour administrateurs avec forward"/> </h:form> <br/> <h:link outcome="/admin/index" value="Page pour administrateurs"/> </h:body> </html>
Il est tout à fait possible d'accéder à la page "protégée" par le lien ajouté (<h:commandLink>
) car ce lien est traduit par un forward interne au serveur, pour lequel les contraintes de sécurité ne sont pas déclenchées (l'URL affiché par le navigateur lorsque la page est affichée correspond à la page index.xhtml
, qui n'est pas un URL protégé).
Évidemment cela ne nuit pas à la sécurité. En effet, si l'application contient du code qui retourne la page protégée, c'est que le développeur l'a voulu ainsi. Cette page ne pourra pas être vue par l'utilisateur avec une requête HTTP directe. Si le code <h:commandLink action="/admin/index" value="Page pour administrateurs avec forward"/>
est retiré de l'application, cette page ne pourra être affichée que si l'utilsateur s'est bien authentifié comme administrateur.