Controle de multiplos Usuarios na aplicação web

Olá pessoal.

Estou com um problema na minha aplicação web usando jsf relacionado ao uso do mesmo por multiplos usuários. Já vasculhei a internet em busca de uma solução e não encontrei.

O problema é o seguinte:

Quando estou logado no sistema com os meus dados codigo do usuario e nome, se uma outra pessoa se loga em outra maquina, os meus dados de codigo e nome passam a ser os dele, ou seja, sempre fica valendo os dados do ultimo que se logou.

Faço o controle de usuarios por sessao usando o seguinte:

Quando me logo, guardo na sessao os dados do usuario que se logou:

FacesContext contexto = FacesContext.getCurrentInstance();
HttpSession sessao = (HttpSession) contexto.getExternalContext().getSession(true);
sessao.setAttribute(“codigousuario”,codigo);
sessao.setAttribute(“nomeusuario”,nome);

e quando preciso recupero assim:


    <%
      FacesContext contexto = FacesContext.getCurrentInstance();
      HttpSession sessao = (HttpSession) contexto.getExternalContext().getSession(false);  
      String codigo = (String)sessao.getAttribute("codigousuario");
      String nome = (String)sessao.getAttribute("nomeusuario");

    %>

<div id="usuariodata">

    <table border=0 style="margin-left: 0px; margin-top: -1px"  cellpadding="0" cellspacing="3" width="100%" bordercolor="#FFCC66" BGCOLOR="#FFCC66">
        <tr>
            <td style="margin-left: 0px; margin-top: 0px" width="50%" align="left" bgcolor="#FFCC66">
                <%=nome%>
            </td>
            <td style="margin-left: 0px; margin-top: 0px" width="50%" align="right" bgcolor="#FFCC66">
                <h:outputText value="#{login.dataAtualFormatada}"/>
            </td>
        </tr> 
    </table>

</div>


Ou seja os dados de cada usuario que se loga nao estão ficando isolados na sua respectiva sessao.
Alguem poderia me ajudar a resolver este problema.

Obrigado
Franklin