Estoy intentando @Inject
un grano @SessionScoped
en un filtroUsando CDI de inyección en un servlet
@WebFilter("/*")
public class IdentityFilter implements Filter, Serializable {
@Inject
private LoginUser loginUser;
...
donde LoginUser
es @SessionScoped
la intención es que loginUser para representar el usuario conectado a la sesión.
El problema es que parece que no siempre obtengo el loginUser
de la sesión actual, estoy obteniendo 'fugas' entre sesiones ya que el objeto LoginUser de una sesión se está compartiendo con otra sesión. Obviamente esto no es bueno.
Me pregunto si esto se debe a que el objeto Filter
es un singleton, o al menos reutilizado entre solicitudes y sesiones por el contenedor (glassfish). (¿Correcto?)
¿Existe una forma mejor de obtener el objeto LoginUser
para la sesión actual sin utilizar una propiedad en el filtro?
¿Podría pegar el código LoginUser? Si no tiene un constructor no privado sin parámetros o la clase es definitiva o tiene un método final, no funcionará. –
Gracias Fabricio. Creo que esto está bien, se inyecta, así debe ser. El problema es compartir ... Creo que encontré lo que está mal, lo publicaré. – Jonathan