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á!