Question

Je fais une application web dans laquelle certaines pages sont protégées par connexion. J'ai créé un domaine de la sécurité JDBC dans GlassFish pour cela, et l'authentification de formulaire utilisé (similaire à la méthode décrit ici )

J'utilise la navigation règles pour rediriger l'utilisateur vers les zones sécurisées du site:

<navigation-case>
        <from-outcome>showResults</from-outcome>
        <to-view-id>/SecureUser/Reservation/New/AvailableResults.xhtml</to-view-id>
        <redirect/>
</navigation-case>
(etc...)

Cela fonctionne très bien. Mais si je saute la balise de redirection dans la navigation cas, l'URL de la page ne change pas. Et dans ce cas, un utilisateur non authentifié peut accéder à la page sécurisée.

Quelle est la meilleure façon d'aller à ce sujet? Faire en sorte que la page est redirigé au lieu de transmis est assez bon? Dois-je écrire du code dans chaque page sécurisée qui vérifie si l'utilisateur est connecté ou non?

Était-ce utile?

La solution

Utilisation de POST pour la navigation de page en page est considérée comme une mauvaise pratique. Ne pas utiliser JSF h:commandLink ou h:commandButton pour page simple à la page de navigation. Les deux génère une forme POST qui est tout à fait inutile et SEO peu favorables pour la navigation simple. Plutôt utiliser h:link ou h:button à la place. Il rend un lien GET vanilles et la forme GET respectivement.

Si vous soumettez un formulaire POST de toute façon et la page de résultats est différente de la page de formulaire, puis en utilisant PRG motif (post-Redirect-Get) est considéré comme une bonne pratique. Vous pouvez utiliser <redirect/> pour cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top