Pregunta

Tengo el componente de ámbito de sesión Seam, CustomIdentity que anula la costura de identidad estándar (también de ámbito de sesión). El CustomIdentity extendido tiene una propiedad

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

En el inicio de sesión overriden () defino un objeto Usuario, poblada con la información del Principal de la HttpServletRequest. En la primera petición en la aplicación del objeto de usuario se outjected como se esperaba en ámbito de sesión. En la segunda solicitud, sin embargo, el objeto Usuario ha desaparecido de la reunión, y cuando visita una página que lo inyecta, me sale una excepción.

Mi pregunta es cuándo exactamente el componente se outjected:

  • Después de todos y cada uno método de la componente CustomIdentity (incluso si no contiene una referencia de user)?
  • Después de cada método que contiene una referencia del componente de usuario?

Y sobre el atributo required:

  • Si al outjection los evalúa objeto de usuario que null, va a ser retirado del ámbito de sesión del usuario ya outjected?

Saludos!

¿Fue útil?

Solución

Para su primera pregunta: el componente se oujected después de cada método de CustomIdentity. Echar un vistazo a la correspondiente costura código fuente org.jboss.seam.core.BijectionInterceptor (Seam 2.2.0). Biyección tiene lugar en el componente, es decir, clase, nivel.

Para la segunda pregunta: cada vez que una solicitud de acabados CustomIdentity, se outjected el valor de su campo. Si se utiliza la propiedad require=false outjection, la user que se outjected actualmente en el contexto de la sesión puede ser anulado por null.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top