Ich habe herausgefunden, dass der JSF 2.0 Flash-Bereich in Mojarra 2.x über einen Cookie implementiert ist. Es scheint, dass JSF eine Umleitungsantwort sendet, wenn Sie mit Flash von A nach B navigieren. Es ist dieselbe Antwort, die den Set-Cookie-Header enthält.
Da Cookies global für den Browser sind, frage ich mich, wie hoch die Wahrscheinlichkeit ist, dass dies zu einer Wettlaufsituation führt. Da der Cookie während der Weiterleitungsantwort gesetzt wird, habe ich versucht herauszufinden, ob die HTTP-Spezifikation irgendwie garantiert, dass die Anfrage, die der Browser als Antwort gibt, immer die erste ist, die diesen Cookie verwendet.
Im Allgemeinen kann es jedoch immer noch ein Problem geben, wenn diese erste Anfrage irgendwie blockiert wird (da das Internet entschieden hat, diese spezielle Anfrage um die halbe Welt zu routen) und dann eine zweite Anfrage von einem anderen Tab am Server eintrifft zuerst.
Ist ein Cookie keine schreckliche Idee für einen Flash-Bereich zwischen zwei Seiten, oder übersehe ich etwas und ist es vollkommen sicher?
Wenn es eine Ressource gibt, wie eine Datei oder ein Cookie ... wird es sicher immer eine Chance geben, eine Race Condition zu sein. Aber Sie sollten untersuchen, wie Sie es vermeiden können.
Ich denke, die Antwort, es perfekt zu speichern, sind EJB 3.0 Wir verwenden EJB 3.0, weil sie transaktionssicher sind. Auf die gleiche Weise, wie wir eine Anforderung an ein EJB zum Einfügen von Daten in eine Datenbank übergeben, können Sie mit Ihrem Flash-Scope interagieren, indem Sie ein EJB als einen Negoziator verwenden. Auf diese Weise wird Ihre Transaktion gesichert und das bedeutet, dass Sie risikofrei sind.
Tags und Links java redirect cookies jsf-2 flash-scope