|
|
Nesse caso é encerrada sim, mas o registro dessa sessão fica registrado no contexto, conforme estamos discutindo, o que impedirá (ou não) do usuário logar novamente, isso vai depender de como o Altieres implementar.
No meu caso eu deixo o cara logar, porém tiro o registro da sessão anterior para o usuário que está tentando logar.
Atenciosamente,
Sávio Canuto de Oliveira Sousa João Pessoa - Paraíba - Brasil
------------------------------------------------------
Em 27 de abril de 2011 09:18, Carlos Alberto Rodrigues Leite <beto20a@xxxxxxxxx> escreveu:
A sessão não é encerrada quando fecha o browser?Em 26 de abril de 2011 20:46, Altieres de Matos <altitdb@xxxxxxxxx> escreveu:
Odisley,
e como eu saberia que o usuario saiu do sistema?? Ele pode apenas fechar o
browser, e não efetuar o logout!
Obrigado.
Altieres de Matos
Sent: Tuesday, April 26, 2011 7:56 PM
Subject: Re: [javasf] Limitar Login por Usuário
Eu
faria: Um managed bean com escopo de aplicação contendo uma lista com usarios
logados, no filter verificaria se na lista já existe o usuairio, se tivesse
daria a mensagem de que tem usuario conectado. Quando usuario saisse do sistema
eu removeria da lista.
Em 26 de abril de 2011 18:02, Altieres de Matos <altitdb@xxxxxxxxx>
escreveu:
Obrigado Sávio,
vou ver o que faço aqui.
Qualquer coisa dou um grito!
Abraços!
Altieres de Matos
Sent: Tuesday, April 26, 2011 5:28 PM
Subject: Re: [javasf] Limitar Login por
Usuário
Fiz
assim: public classe Filtro implements Filter
{ ... HttpServletResponse rp = (HttpServletResponse)
response; HttpServletRequest rq = (HttpServletRequest)
request; ServletContext sc =
rq.getSession().getServletContext(); Usuario user = (Usuario)
rq.getSession().getAttribute("SYSTEM_USER"); ... AQUI FAÇO OUTRAS
VERIFICAÇÕES if (verificarDuplicidadeUsuario(user.getLogin(), idSession,
sc)) {
rp.sendRedirect(rq.getContextPath() +
"/view/erros/UsuarioJaLogado.jsf"); } ... private boolean
verificarDuplicidadeUsuario(String login, String id, ServletContext sc)
{ // verificando se o usuario
está no escopo de contexto
String idSession = "";
if (login != null)
{
idSession = (String)
sc.getAttribute(login);
if ((sc.getAttribute(login) != null) &&
(!idSession.equals(id)))
return true;
} return
false; } } // FIM DA CLASSE FILTRO No mais
isso ai está funcionando para o que eu quero, basta vc adaptar pra vc
aí. Abraço. Atenciosamente, Sávio Canuto de
Oliveira Sousa João Pessoa - Paraíba -
Brasil ------------------------------------------------------
Em 26 de abril de 2011 15:08, Altieres de Matos <altitdb@xxxxxxxxx> escreveu:
Então
eu corro esse risco, mas vamos deixar isso para ultima ocasião!
Você
diz para eu usar da seguinte maneira:
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)
context.getExternalContext().getResponse();
ServletContext servletContext = (ServletContext)
context.getExternalContext().getContext();
servletContext.setAttribute("id", valor); //Aqui eu armazenaria as
informações do cliente
Isso aqui já seria outra coisa?
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession)
context.getExternalContext().getSession(false);
session.setAttribute("id", valor);
As duas funcionariam? Se sim qual a melhor forma?
Obrigado.
Sent: Tuesday, April 26, 2011 1:57 PM
Subject: Re: [javasf] Limitar Login por
Usuário
Vendo que você está pensando em usar o banco para fazer isso, já pensou
o que têm que ser feito caso venha cair a energia do servidor? Tipo, você
atualizou o status do login, e derrepente faltou energia, quando religarem a
energia, os status, para alguns usuários ainda estarão ativos,
impossibilitando eles logarem novamente. Isso se encaixa no seu problema? No
meu sim, foi por isso que colocamos os usuários logados a nível de
contexto. Como precisei compartilhar informações para as diferentes
sessões da aplicação, foi rápido e simples fazer isso. Dá uma olhada
nesse material: http://www.cefetrn.br/~ajdsouza/programacao-II/PDF/ServletContext.pdfAtenciosamente,
Sávio Canuto de Oliveira Sousa João
Pessoa - Paraíba -
Brasil ------------------------------------------------------
Em 26 de abril de 2011 13:17, Altieres de Matos <altitdb@xxxxxxxxx> escreveu:
Olá Sávio,
a solução que eu desejo não precisa derrubar o usuário, só precisa
“não deixar” outro usuário acessar o sistema com um login já
autorizado.
Creio eu que o Spring iria servir se eu precisasse de regras, mais no
momento eu não preciso.
Estou estudando uma forma de fazer isso, ontem encontrei um
HttpSessionBindingListener que sabe quando um objeto é inserido ou
retirado da sessão, pensei em usar ele vinculado com o banco de dados e
atualizando o login para ON e OFF, apenas um exemplo.
Pelo que li no livro, esse listener vai fazer tudo para mim, ele
saberá quando o objeto sair da sessão e vai mudar o login para OFF, e se o
objeto entrar na sessão vai configurar o login para ON, irei especificar
para ele para fazer isso.
Desculpe a ignorância, mais como assim, elevar isso a nível de
contexto, talvez isso seja melhor do que com o Listener.
Obrigado.
Att Altieres de Matos
Sent: Tuesday, April 26, 2011 12:47 PM
Subject: Re: [javasf] Limitar Login por
Usuário
Olá Altieres, Implementei uma funcionalidade semelhante a
isso, porém eu ainda derrubava o usuário que já estivesse logado com
aquele login. Como você já pesquisou, o Spring também não me ajudou muito
o que me induziu a fazer uma implementação diferente usando um filtro
simples. Para minha solução, não dava pra trabalhar colocando informações
na sessão do usuário, tive que elevar isso a nível de
contexto. Resolveu tranquilo o que eu
queria. Atenciosamente, Sávio Canuto de Oliveira
Sousa João Pessoa - Paraíba -
Brasil ------------------------------------------------------
Em 26 de abril de 2011 11:50, Altieres de Matos
<altitdb@xxxxxxxxx> escreveu:
Zeh,
analisei o link que me enviou, muito obrigado.
Pesquisei também algo que eu possa limitar o user a somente um
acesso por vez com o Spring, mas não encontrei nada.
Encontrei bastante material limitando o acesso a regras “ROLE”, mas
nada de como eu preciso fazer.
Tem alguma dica?? Alguma palavra chave que seja.
Obrigado.
Altieres de Matos
Sent: Tuesday, April 26, 2011 8:14 AM
Subject: Re: [javasf] Limitar Login por
Usuário
--
--
--
--
Você recebeu esta mensagem por que é membro do Javasf http://groups.google.com/group/javasf Conheça
também o Java Brazil: http://groups.google.com/group/thejavabrazil --
-- <--_|--/Odisley Soares Silva\--|_-->
![]() -- Você
recebeu esta mensagem por que é membro do Javasf http://groups.google.com/group/javasf Conheça
também o Java Brazil: http://groups.google.com/group/thejavabrazil
--
--
--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil
|
|