1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como mostrar o usuário logado na página xhtml ?

olá, pessoal.

Como eu devo fazer para mostrar o usuário logado na pagina xhtml? abaixo segue o metodo logar da classe bean "login": OBS: quem souber, por favor, deem-me uma força. já estou atrasado para entregar isso. Muito obrigado.

public void logar(Usuario usuario)
        throws
            TransactionException,
            PersistenceException,
            LoginException
    {
        ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
        logar
        (
            usuario, 
            (HttpSession) context.getSession(true),
             ((HttpServletRequest) context.getRequest()).getRemoteAddr()
        );
    }

    /**
     * Verifica se o usuario esta cadastrado e se a senha esta correta e se o
     * usuario ja possui outra sessao aberta.
     * 
     * @param nomeUsuario nome usado como login do usuario
     * @param senha senha do usuario
     * @param sessao objeto sessao do container JSP, se nao for jsfaces.
     * @return
     * @throws NaoExisteException
     * @throws Exception
     */
    public void logar(Usuario usuario, HttpSession sessao, String ipCliente)
        throws
            TransactionException,
            PersistenceException,
            LoginException
    {

        GerenteUsuario  gerenteUsuario  = getGerente(GerenteUsuario .class);
        GerenteMensagem gerenteMensagem = getGerente(GerenteMensagem.class);

        NestedTransaction ut = NestedTransaction.getInstance();

        try
        {
            ut.begin();
            try
            {
                Usuario usuarioBanco;
                try
                {
                    usuarioBanco = gerenteUsuario.pesquisarPorLogin(usuario.getLogin());
                }
                catch (NoResultException e)
                {
                    throw new LoginException(Mensagens.MSG_ERRO_LOGIN_INVALIDO.getMensagem());
                }
                // String senhaDec = UtilitariaSeg.decodificaSenhaExterna(senha);
                if (usuario.getSenha().equals(usuarioBanco.getSenha()))
                {
                    Integer quantidadeMaquinasPermitidas = usuarioBanco.getQuantidadeMaquinasPermitidas();
                    //Testa se o usuário tem restrição de maquinas para logar no sistema e a maquina não está cadastrada no usuário.
                    if (quantidadeMaquinasPermitidas != null &&
                        quantidadeMaquinasPermitidas > 0 &&
                        !usuarioBanco.isIdentificadorMaquinaCadastrado(usuario.getIdentificadoresMaquinas()))
                    {
                        //Pode cadastrar o novo identificador.
                        if (usuarioBanco.getQuantidadeMaquinasCadastradas() < quantidadeMaquinasPermitidas)
                            usuarioBanco.setIdentificadorMaquina(usuario.getIdentificadoresMaquinas());
                        //Não pode cadastrar mais cadastrar identificadores.
                        else
                            throw new LoginException(Mensagens.MSG_ERRO_LOGIN_MAQUINA_SEM_PERMISSAO.getMensagem());
                    }
                    //Verifica se usuario esta ativo e se ele possue um ip valido.
                    if (usuarioBanco.getStatus() != StatusUsuario.ATIVO)
                    {
                        throw new LoginException(Mensagens.MSG_ERRO_LOGIN_USUARIO_INATIVO.getMensagem());
                    }
                    //Verifica caso o usuário for prestador se o perfil dele esta ativo
                    if (usuarioBanco.getPerfilDeAcesso().getId().equals(1993) &&
                        usuarioBanco.getPrestadorLocalidade().getAtivo() == 0)
                            throw new LoginException(Mensagens.MSG_ERRO_LOGIN_PERFIL_INATIVO.getMensagem());
                    // TODO Corrigir defeito com as redes IPv6.
                    /*
                    else
                    if (!(new IP(ipCliente)).isRede(new IP(usuarioBanco.getPerfilDeAcesso().getFaixaAcessoIPRede()), new IP(usuarioBanco.getPerfilDeAcesso().getFaixaAcessoMascaraRede())))
                    {
                        throw new LoginException(Mensagens.MSG_ERRO_LOGIN_IP_INVALIDO.getMensagem());
                    }
                    */
                    else
                    {

                        Parametrizacao param = getGerente(GerenteParametrizacao.class).pesquisar();
                        Usuario gestor = param.getGestorSistema();

                        Mensagem msn = new Mensagem();
                        // verifica se tempo maximo desde o ultimo acesso ja
                        // expirou
                        if (usuarioBanco.getDataUltimoLogin() == null)
                        {
                            usuarioBanco.setDataUltimoLogin(new Date());
                        }

                        if (usuarioBanco.getTempoUltimoLogin() >= param.getTempoMaximoLogin())
                        {

                            msn.setRemetente(gestor);
                            msn.setDestinatario(gestor);
                            msn.setAlvo(usuarioBanco);
                            msn.setMensagem(Mensagens.MSG_LOGIN_ACESSO_TEMPO_MAXIMO.getMensagem());
                            msn.setData(new Date());
                            gerenteMensagem.incluir(msn);
                            throw new LoginException(Mensagens.MSG_ERRO_LOGIN_TEMPO_MAXIMO_LOGIN.getMensagem());

                        }
                        else
                        {

                            // verifica se ja esta logado e manda mensagem para gestor
                            RegistroLog log = getGerente(GerenteRegistroLog.class).pesquisar(new RegistroLog(usuarioBanco.getId()));
                            boolean usuarioEstaLogado = false;
                            if (log != null)
                                usuarioEstaLogado = true;

                            String identSessao = sessao.getId();

                            // Se Ja estiver logado e identificador de sessao e diferente: Nao pode logar
                            if (usuarioEstaLogado && !usuarioBanco.isMultiplosLogin()) // && log.getIdSessao().equals(identSessao))
                            {

                                msn.setRemetente        (gestor);
                                msn.setDestinatario     (gestor);
                                msn.setAlvo             (usuarioBanco);
                                msn.setMensagem         (Mensagens.MSG_LOGIN_ACESSO_DUPLICIDADE.getMensagem());
                                msn.setData             (new Date());
                                gerenteMensagem.incluir (msn);

                                throw new LoginException(Mensagens.MSG_ERRO_USUARIO_LOGADO.getMensagem());

                            }
                            else
                            {

                                // atualiza a data de acesso ao sistema, do usuario.
                                usuarioBanco.setDataUltimoLogin(new Date());
                                gerenteUsuario.alterarSemValidarTamanhoLogin(usuarioBanco);

                                // registra login no log de acessos
                                Acesso ac = new Acesso();
                                ac.setAcao(AcaoAcesso.ACAO_LOGIN);
                                Date dt = new Date();
                                ac.setHora(dt);
                                ac.setData(dt);
                                ac.setFuncionalidade(param.getRecursoLogin());
                                ac.setUsuario(usuarioBanco);
                                ac.setIpDoUsuario(ipCliente);

                                getGerente(GerenteAcesso.class).incluir(ac);

                                if (!usuarioEstaLogado)
                                {
                                    // Usuario nao esta logado.
                                    registraSessaoDoUsuario(usuarioBanco, identSessao, ipCliente, sessao);
                                }
                                else
                                {
                                    // Usuario esta logado.
                                    atualizaSessaoDoUsuario(usuarioBanco, identSessao, ipCliente, sessao);
                                }

                            }
                        }
                    }
                }
                else
                {
                    if (sessao.getAttribute(RegrasSessao.SESSION_USUARIO_LOGADO.getNome()) != null)
                    {
                        sessao.removeAttribute(RegrasSessao.SESSION_USUARIO_LOGADO.getNome());
                        sessao.invalidate();
                    }
                    throw new LoginException(Mensagens.MSG_ERRO_LOGIN_INVALIDO.getMensagem());
                }
            }
            catch (IllegalArgumentException e)
            {
                ut.rollback();
                throw e;
            }
            catch (EntidadeNaoExisteException e)
            {
                ut.rollback();
                throw e;
            }
            catch (PersistenceException ex)
            {
                ut.rollback();
                throw ex;
            }
            catch (TransactionException ex)
            {
                ut.rollback();
                throw ex;
            }
            catch (EntidadeExisteException e)
            {
                ut.rollback();
                throw e;
            }
            catch (LoginException e)
            {
                ut.rollback();
                throw e;
            }
            catch (Exception e)
            {
                ut.rollback();
                throw e;
            }
            ut.commit();
        }
        catch (IllegalArgumentException e)
        {
            sessao.invalidate();
            throw e;
        }
        catch (EntidadeNaoExisteException ex)
        {
            sessao.invalidate();
            throw new PersistenceException(ex);
        }
        catch (PersistenceException ex)
        {
            sessao.invalidate();
            throw ex;
        }
        catch (TransactionException ex)
        {
            sessao.invalidate();
            throw ex;
        }
        catch (LoginException e)
        {
            sessao.invalidate();
            throw e;
        }
        catch (EntidadeExisteException ex)
        {
            sessao.invalidate();
            throw new PersistenceException(ex);
        }
        catch (NotSupportedException ex)
        {
            sessao.invalidate();
            throw new TransactionException(ex);
        }
        catch (SystemException ex)
        {
            sessao.invalidate();
            throw new TransactionException(ex);
        }
        catch (SecurityException ex)
        {
            sessao.invalidate();
            throw new TransactionException(ex);
        }
        catch (IllegalStateException ex)
        {
            sessao.invalidate();
            throw new TransactionException(ex);
        }
        catch (RollbackException ex)
        {
            sessao.invalidate();
            throw new TransactionException(ex);
        }
        catch (HeuristicMixedException ex)
        {
            sessao.invalidate();
            throw new TransactionException(ex);
        }
        catch (HeuristicRollbackException ex)
        {
            sessao.invalidate();
            throw new TransactionException(ex);
        }
        catch (Exception e)
        {
            sessao.invalidate();
            throw new TransactionException(e);
        }

    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java-ee ou faça a sua própria pergunta.