Objeto no scopo de sessao esta desaparecendo

Bom dia pessoal. Estou com um problema que é o seguinte:
Tenho uma aplicacao jsp + struts 1.x que tem o seguinte cenario:
Minha pagina JSP contem uma tag que envia como parametro um codigo para ser realizado uma consulta no banco de dados.

<html:link action="/pages/licitacao/proposta/EnviarProposta.do?idLicitacao=${pregao.id}">Enviar Proposta</html:link>

Tudo que estiver dentro desse caminho (/pages/licitacao/proposta/*) meu filtro vai entrar em acao e vai pedir para o usuario se logar, ou seja a partir desse link que apontei para a action o controller vai requisitar o filtro e vai pedir para logar, assim que ele se logar ele vai para a Action que retira o parametro que foi enviado pela tag, efetua a consulta e armazena o objeto retornado pela consulta no scopo da sessao, para depois esse objeto que foi passado no scopo da sessao ser impresso no jsp. Acontece que na primeira vez que acesso o sistema esse objeto que foi passado no scopo da sessao esta null, mas eu debuguei a aplicacao e no meu servlet ele esta correto, ou seja, a consulta no banco ocorre normalmente. E se eu fechar a aba e depois acessar denovo ele funciona. O que pode ser? Vou passar o codigo do filtro e do action…

Quando o cliente clica na tag <html:link action="/pages/licitacao/proposta/EnviarProposta.do?idLicitacao=${pregao.id}">Enviar Proposta</html:link> ele vai para :

<action
 path="/pages/licitacao/proposta/EnviarProposta"
 type="org.springframework.web.struts.DelegatingActionProxy">
 <forward
 name="success"
 path="/pages/licitacao/proposta/EnviarProposta.jsp"/>
 <forward
 name="failure" 
 path="/pages/errors/ErrorEnvioProposta.jsp"/>
 <forward 
	name="errorConsultaPregaoEnvioProposta"
	path="/pages/errors/ErrorEnvioProposta.jsp"/>
</action>

Que verifica que precisa se logar:

<filter-mapping>
   <filter-name>Acesso</filter-name>
   <url-pattern>/pages/licitacao/proposta/*</url-pattern>
</filter-mapping>

Veja o filtro:

[code]
public class LoginAcesso implements Filter {

private FilterConfig config;

public void destroy() {
	
	
}

public void doFilter(ServletRequest req, ServletResponse resp,
		FilterChain chain) throws IOException, ServletException {
	
	HttpSession session = ((HttpServletRequest)req).getSession();
	Usuario user = (Usuario) session.getAttribute("usuario");
		
			
	if (user == null) {
		((HttpServletRequest)req).setAttribute("msg", "Senhor Usuario, voce nao esta logado, favor entrar com login e senha respectivos");
		RequestDispatcher view = ((HttpServletRequest)req).getRequestDispatcher("/pages/licitacao/Login.jsp");
		view.forward(req, resp);
	} else {
		chain.doFilter(req, resp);
	}
	
}

public void init(FilterConfig config) throws ServletException {
	this.config = config;
	
}

}[/code]

E o meu Action que efetua a consulta:

[code]
public class EnviarPropostaAction extends Action {

private PregaoService pregaoService;

public void setPregaoService(PregaoService pregaoService) {
	this.pregaoService = pregaoService;
}


public ActionForward execute(ActionMapping mapping, ActionForm form,
		HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	// TODO Auto-generated method stub
	
	ActionMessages messages = new ActionMessages();
	Pregao pregao = null;
	try {
		pregao = this.pregaoService.consultaPorIdPregao(Pregao.class, Long.parseLong(request.getParameter("idLicitacao")));
		HttpSession session = request.getSession();
		session.setAttribute("pregao", pregao);
		if (session == null) {
			System.out.println("novo");
		}
	} catch (Exception e) {
		messages.add("errorPregaoEnvioPropostaVazio", new ActionMessage("error.envio.pregao.proposta.vazio"));
		saveErrors(request, messages);
		return mapping.findForward("errorConsultaPregaoEnvioProposta");
	}
	if (messages.isEmpty()) {
		return mapping.findForward("success");
	} else {
		return mapping.findForward("failure");
	}
	
}

}[/code]

Se alguem me ajudar ficarei grato.