Frage

Ich habe die Naht Session-scoped Komponente, CustomIdentity, die die Standard-Naht Identität überschreibt (auch Session-scoped). Die erweiterte CustomIdentity hat eine Eigenschaft

@Out(required=false, scope=ScopeType.SESSION)private User user

In der überschriebenen login () Ich definiere ein Objekt Benutzer, bevölkert mit Informationen aus dem Rektor der HttpServletRequest. In der ersten Anforderung in der Anwendung wird das Benutzerobjekt wie erwartet in Sitzungsbereich outjected. In der zweiten Anfrage aber hat das Benutzerobjekt aus der Session verschwunden, und wenn ich eine Seite besuchen, dass verleibt sie, erhalte ich eine Ausnahme.

Meine Frage ist, wann genau die Komponente outjected ist:

  • Nach jeder ein Verfahren der CustomIdentity Komponente (auch wenn es nicht einen Verweis von user enthält)?
  • Sie nach jeder Methode, die eine Referenz der Benutzerkomponente enthält?

Und über das required Attribut:

  • Wenn auf outjection des User-Objekt auswertet zu null, ist die bereits outjected Benutzer gehen von Sitzungsbereich entfernt werden?

Cheers!

War es hilfreich?

Lösung

Um Ihre erste Frage: die Komponente nach jedem Verfahren von CustomIdentity oujected. Werfen Sie einen Blick auf die entsprechende Naht Quellcode org.jboss.seam.core.BijectionInterceptor (Seam 2.2.0). Bijection erfolgt bei Komponente, das heißt Klasse, Stufe.

Um Ihre zweite Frage: jedes Mal, wenn eine Anfrage an CustomIdentity beendet ist, wird der Wert des Feldes outjected. Wenn Sie die Eigenschaft outjection require=false verwenden, die user die derzeit in Ihrem Sitzungskontext outjected durch null außer Kraft gesetzt werden kann.

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