Injeção dependencia

Java

28/01/2013

Bom dia Pessoal!

Estou com um problema muito estranho e ao mesmo tempo muito serio. Tem uma aplicação java web que utiliza jsf + primefaces + hibernate e spring, a um tempo venho percebi algo muito estranho, quando dois usuários ou mais acessão o sistema o mesmo se comporta como se os usuários estivessem na mesma sessão exemplo:
O usuário A e B estão logados criando um pedido de compra, esse pedido de compra contem uma lista de itens, quando o usuário A adiciona itens na sua lista os mesmos itens são exibidos na tela do usuário b.

O estranho e que o MangeBean estão com os annotation : @ManagedBean, @Controller e @RequestScoped

Na mesma classe eu utilizo o @Inject do pacote import javax.inject.Inject; para acessar as classes refrente a outra camada exemplo:

@ManagedBean
@Controller
@RequestScoped
public class PedidoDeCompraControle{
@Inject
private PedidoDeCompraService pedidoDeCompraService;
.
.
.

Realizei um teste debugando, através do eclipse, com dois usuários acessando ao mesmo tempo e percebi que os objetos instanciados pela aplicação contem o mesmo “id” ou seja ele ta criando um único objeto para todos os usuários.
Alguém tem alguma ideia de como eu posso consertar isso?
Desde já agradeço.
Ismael Oliveira

Ismael Oliveira

Curtidas 0

Respostas

Davi Costa

Davi Costa

28/01/2013

Já ouviu falar em Spring-Security. Vc nõ é obrigado a ter o Spring na sua aplicação é um módulo de segurança já pronto testado e pode ser usado em qualquer aplicação web

att Davi
GOSTEI 0
Ismael Oliveira

Ismael Oliveira

28/01/2013

no caso eu utilizo o spring nos annotations @Transactional e @Transactional(readlony = true) no metodos de consulta e persistencia, no caso a minha aplicação esta criando o objetos injetados no padrão singleton.
GOSTEI 0
Davi Costa

Davi Costa

28/01/2013

vc conferiu se o logar está settando o usuário?

att Davi
GOSTEI 0
Davi Costa

Davi Costa

28/01/2013

Complementando, vc já está usando spring que tal usar spring-security que já é uma implemntação pronta/testada/homologada/confiável e te dará mais recursos. O melhor é muito simples com vários tutoriais na rede em menos de uma hr vc coloca no seu projeto

att Davi
GOSTEI 0
Ismael Oliveira

Ismael Oliveira

28/01/2013

Verifiquei a parte de usuário e esta tudo ok, infelizmente não posso mudar o projeto apenas estou continuando o mesmo, como havia dito anteriormente realizei um debub com dou susarios ao mesmo tempo e verifiquei que o objeto que foi injetado esta como singleton.
GOSTEI 0
Wisley Souza

Wisley Souza

28/01/2013

Usa CustomRealm...

Mostra sua configuração de spring e context ai...
GOSTEI 0
Davi Costa

Davi Costa

28/01/2013

Se usou singleton só tem um usuário por aplicação (caso tenha setado o usuário em uma classe singleton), vc deve guardar o usuário numa session

att Davi
GOSTEI 0
POSTAR