RMI - Identificar qual cliente fez a requisição

1 resposta
VictorMatuk

Bom dia! Tentando mais uma vez tirar dúvida sobre RMI hehehe.

Enfim, tem um Cliente Java que conecta ao Servidor Java.

Supondo que Cliente1 chama o método login no Servidor, o método login recebe uma Classe User(id, nome, login) e a String senha.
O Servidor pega user.login e senha para comparar. Se os dados estão ok, armazena a classe User recebida em um ArrayList e retorna true.
Cliente1 conseguiu fazer o Login.
Agora Cliente2 faz a mesma coisa e consegue logar.

O Servidor tem na ArrayList, 2 user’s.

Cliente1 chama o método logout que passa a classe User como parametro. O Servidor pegar user.id e procura na ArrayList por esse id e remove.

Agora o que eu quero, só que não consigo imaginar como e nem consegui achar procurando por RMI avançado.

Quero que o cliente não precise passar a classe dele para que o servidor saiba quem fez a comunicação. Dai não terei problema com pessoas que enviarem um id qualquer na tentativa de bagunçar o servidor. Sei que pra fazer isso a pessoa vai ter que descriptografar e desofuscar o código, mas sei que isso é possível e queria evitar.

Em Socket eu fazia isso, era simples, eu abria uma thread pra cada cliente, logo eu sabia que se o cliente chamasse algo no servidor, a thread dele teria o id dele.

1 Resposta

VictorMatuk

Bem, parece que um servidor RMI não tem maneira de pegar dados do cliente a não ser que o cliente passe.
Pesquisei sobre pegar o ip do cliente que fez a requisição, mas não achei nada nada!
Vou voltar para sockets, e usar RMI só pra transferir objetos. Misturar os dois, dai deve ficar bom hehehehehhe

Criado 20 de abril de 2011
Ultima resposta 20 de abr. de 2011
Respostas 1
Participantes 1