Frage

Ich mache eine Web-Anwendung, in denen bestimmte Seiten sind Login-geschützt. Ich habe einen JDBC-Sicherheitsbereich in Glasfischen für diesen und verwendete Form Authentifizierung (ähnlich wie bei der Methode erstellt hier beschrieben)

Ich bin Navigation mit Regeln den Benutzer auf die gesicherten Bereiche der Website umgeleitet werden:

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

Das funktioniert gut. Aber wenn ich die Umleitung Tag in dem Navigations-Fall überspringt, dann die URL der Seite ändert sich nicht. Und in diesem Fall ein nicht authentifizierter Benutzer ist in der Lage, die gesicherte Seite zugreifen zu können.

Was ist der beste Weg, um dies zu realisieren? Sicherzustellen, dass die Seite statt weitergeleitet umgeleitet wird, ist gut genug? Soll ich Code in jeder gesicherten Seite schreiben, dass überprüft, ob der Benutzer angemeldet ist oder nicht ist?

War es hilfreich?

Lösung

Mit POST für Seite-zu-Seite-Navigation ist eine schlechte Praxis betrachtet. Verwenden Sie JSF h:commandLink oder h:commandButton nicht für einfache Seite-zu-Seite-Navigation. Beide erzeugen eine POST-Form, die völlig unnötig und SEO-unfreundlich für einfache Navigation. Vielmehr verwendet h:link oder h:button statt. Es macht einen Plain-Vanilla-GET-Link und GET Form ist.

Wenn Sie eine POST-Form ohnehin einreichen und die Ergebnisseite unterscheidet sich von der Formularseite, dann mit PRG (Post-Redirect-Get) Muster gute Praxis betrachtet wird. Sie können <redirect/> für diese.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top