JSF + Cookie

5 respostas
Mr.style

Pessoal,
Estou criando uma aplicação que possui uma parte com votação.
Para realizar a votação o usuário não precisa estar autenticado no Sitema.
Para evitar vários votos do mesmo usuário estive pensando em usar cookies, mesmo não sendo 100% garantido, mas já iria ajudar bastante.

Tenho uma dúvida no que é preenchido no nome e valor do cookie para identificar cada pessoa.
Pois depois preciso recuperar o mesmo.

Cookie ck = new Cookie("NOME", "VALOR");

Pois terá que ter um para cada pessoa que votar e para não deixá-la votar novamente iria verificar se existe este cookie.

Essa parte de gravar e recuperar que ficou vaga para mim.

Agradeço a ajuda.

5 Respostas

drsmachado

Cookies são gravados por um objeto de HttpServletResponse, quando uma página é carregada.
A recuperação é feita por um objeto de HttpServletRequest.
Será preciso ver como manipular estes objetos na implementação JSF que estiver utilizando.

Mr.style

Até aí eu sei…
Mas gostaria de saber como posso garantir um nome e valor que eu possa recuperar tendo a certeza que este cookie pertence a mim.
E tem como eu recuperar todos os cookies do browser deste usuário?
Obrigado!

marsilvarodrigues

Mr.style:
Até aí eu sei…
Mas gostaria de saber como posso garantir um nome e valor que eu possa recuperar tendo a certeza que este cookie pertence a mim.
E tem como eu recuperar todos os cookies do browser deste usuário?
Obrigado!

Mestre, o ponto principal do uso de Cookie é que ele é sempre de um domínio, ou seja aplicativos de domínios diferentes não conseguem recuperar o seu Cookie e manipulá-lo.

rmendes08

Porque você não obriga o cara a digitar o e-mail dele junto com o voto ? Pois mesmo que você use cookies é só o cara limpar os cookies do navegador que ele consegue votar novamente. Se o usuário tiver a malícia de favorecer alguém votando mais de uma vez, limpar cookies vai ser a 1a idéia que ele vai ter. Pelo menos com o e-mail ele vai ter um pouco mais de trabalho, tendo que criar vários endereços de e-mail.

Quanto à sua dúvida, é bem complicado garantir que o cookie é seu. O que você pode fazer é criar um nome qualificado, algo como “br.com.votesystem.usuario”. Para cada usuário você pode gerar uma UID e setar como valor do cookie. Mas isso é bem fácil de burlar, basta o cara visualizar os cookies que ele tem no navegador e criar o cookie na mão.

Enfim, se você realmente precisa dessa garantia, o ideal é criar um cadastro de usuário mesmo.

Mr.style

Entendi agora.
Agradeço muito.

Criado 30 de abril de 2012
Ultima resposta 30 de abr. de 2012
Respostas 5
Participantes 4