SpringSecuriy - Usuário logado vendo dados do último usuário que acessa o sistema
02/07/2014 15:07
1
Olá,

Sou novo na no forum e pesquisei bastante antes de postar o probelma que estou enfrentando. Espero que me ajudem.

Imaginem que existem 2 usuários que vão utilizar o sistema conectados à internet pela mesma rede:
- Fulano
- Beltrano

Forçando a falha:
1) Quando o Fulano autentica no sistema, carrega o perfil, os acessos e tudo funciona lindamente bem..... funciona bem até que o Beltrano acesse o sistema!!

2) A partir do momento que o Beltrano acessa o sistema, a sessão do Fulano é perdida e ele começa a ver dos dados do último usuário que logou.

Complementando o diagnóstico:
1) Esse problema não acontece quando estamos em LAN e também não consegui simular em nenhuma outra rede WAN a não ser do nosso cliente.

2) Apenas acontece na rede do nosso cliente e eu imagino que seja alguma coisa da infra, algum proxy packet/traffic shapper (mas não posso falar simplesmente que o problema é lá. Preciso tentar achar uma solução.

- - - - - - -

Isso foi inédito para mim, nunca tinha passado por esse problema trabalhando com o Spring Security

Já recorri ao Google e arrisquei algumas mudanças no "DefaultSecurityConfig.groovy"

rememberMe.useSecureCooke = true
useSessionFixationPrevention = true
sessionFixationPrevention.alwaysCreateSession = true

Mas não resolveu... sempre que acessam da rede do nosso cliente dá problema.

(...)

Estou num mato sem cachorro, mas pensei em algumas coisas:
- Tentar rodar em https com OpenSSL (e se funcionar adquirir um cerificado tcham)
- Atualizar o spring security para versão 2 (mas tenho receio de ferrar com meu projeto todo, não tenho boas experiências em trocar versão de plugins na etapa final de um projeto)
- Rodar a aplicação na infra do cliente (para que o springsecurity utilize os ips LAN (individuais) e não o ip wan no gerenciamento das sessões.
- Não sei mais o que fazer. Nunca tinha visto isso e de certa forma acho um absurdo =\

A aplicação roda,

- Grails 2.2.4
- Spring Security Core 1.2.7.3

- Joda Time 1.6.2, Jquery 1.8.3, Resources 1.1.6, MySql Connector 5.1.22, e Cache: 1.0.1



Qualquer ajuda será de grande importância.

Muito obrigado desde já!
Tags: spring security; session; erro; sobreposição acesso


0
Nada nada nada, gente?

Obrigado
03/07/2014 20:07


0
Oi Yusuf,

vi sua mensagem aqui agora. Olha: isto que você está narrando é realmente muito estranho e não sei o que pode estar causando, mas quem sabe apontando alguns pontos eu não te ajudo a encontrar a resposta?

O primeiro ponto é o seguinte: o identificador da sessão. Poderia ocorrer de alguém estar roubando a sessão de outro usuário (mesmo que acidentalmente) copiando o sessionId. Qual a probabilidade disto ocorrer? Em uma rede, com usuários que não estão planejando isto... zero.

Outro ponto: seus usuários acessam serviços no sistema. O serviço tem por escopo padrão o singleton. Se ele tiver algum estado, e este estado tiver atributos que sejam definidos pelo usuário, pode ser sim, que um esteja olhando o estado do outro acidentalmente.

Outro ponto: atributos estáticos. Há atributos estáticos no seu sistema? Se houver, de novo, é o mesmo problema. Você não terá pontos por usuário, mas para todos os usuários, todos alterando o mesmo ponto.




Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto