Domanda

Ho la componente di sessione con scope Seam, CustomIdentity che sostituisce il Seam Identity standard (anche session-ambito). Il CustomIdentity esteso ha una proprietà

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

Nel login sovresposta () definisco un oggetto d'uso, popolato con le informazioni dal Preside della HttpServletRequest. Nella prima richiesta nella domanda l'oggetto utente viene messo in outjection come previsto in ambito sessione. Nella seconda richiesta, però, l'oggetto utente è scomparsa dalla sessione, e quando visito una pagina che l'inietta, ottengo un'eccezione.

La mia domanda è quando esattamente il componente viene messo in outjection:

  • Dopo tutti e ciascuno metodo del componente CustomIdentity (anche se non contiene un riferimento di user)?
  • Dopo ogni metodo che contiene un riferimento della componente utente?

E circa l'attributo required:

  • Se su dell'outjection le Esamina dell'oggetto utente null, sta per essere rimosso dal campo di applicazione della sessione utente già messo in outjection?

Cheers!

È stato utile?

Soluzione

Per la tua prima domanda: il componente è oujected dopo ogni metodo CustomIdentity. Date un'occhiata al corrispondente Seam codice sorgente org.jboss.seam.core.BijectionInterceptor (Seam 2.2.0). Bijection avviene a componenti, vale a dire, di classe, di livello.

Per la tua seconda domanda: ogni volta che una richiesta di finiture CustomIdentity, il valore del campo viene messo in outjection. Se si utilizza la proprietà require=false dell'outjection, il user che è attualmente messo in outjection nel contesto di sessione può essere annullato con null.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top