Injeção dependencia

28/01/2013

0

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

Responder

Posts

29/01/2013

Davi Costa

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
Responder

29/01/2013

Ismael Oliveira

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.
Responder

29/01/2013

Davi Costa

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

att Davi
Responder

29/01/2013

Davi Costa

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
Responder

29/01/2013

Ismael Oliveira

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.
Responder

29/01/2013

Wisley Souza

Usa CustomRealm...

Mostra sua configuração de spring e context ai...
Responder

30/01/2013

Davi Costa

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
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar