Postagens populares

quarta-feira, 25 de agosto de 2010

Utilizando a mesma sessão do browser em Applets Java

Ao surgir a necessidade de auntenticar um e-token no navegador, utilizei o Java. Porém não imaginava como seria difícil manter a sessão do ususário através do plugin.

Pesquisei na documentação e outras fontes, mas estava difícil. Aparentemente se você faz uma chamada detro do Applet, utilizando a classe URLConnection, é uma chamada totalmente diferente.

Mas existe uma solução simples, e que pode evoluir até para algo mais elegante, mas me atenho ao básico que é minha necessidade no momento.

Ao chamar a tag (embed, object ou applet) passe como parametro o nome e o valor do cookie que controla sua sessão. Em PHP fica assim:
<param name="cookie_name" value="nome-do-cookie >
<param name="cookie_value" value="" >

Capture dentro do Applet o valor:
String cookie_name = getParameter('cookie_name');
String cookie_value = getParameter('cookie_value');

 E ao realizar a chamada para a url que deseja, passe o cookie:
URLConnection conn = new URLConnection(url);
conn.setRequestProperty('Cookie', cookie_name + "=" + cookie_value);

Pronto.

Existe uma maneira de pegar os sent headers, dentre eles os cookies enviados, automaticamente e em um laço, repassá-los adiante, mas como eu comentei antes, não foi minha necessidade algo tão elegante.


Keep it simple!

2 comentários:

  1. Olá Marco. Estou com problema semelhante ao seu mas sua solução não funcionou... Tenho uma aplicação web (HTTPS) que utiliza certificado digital do usuário para efetuar login. Depois de logado, a página carrega uma applet para fazer download de um arquivo do servidor para edição com BrOffice e ao final salvar este arquivo. Tudo isso usando SSL. Ocorre que antes mesmo de ler o jnlp a JVM solicita certificado do usuário novamente! Alguma dica?

    ResponderExcluir
  2. Vc já reparou se o user-agent é o mesmo? Comigo aconteceu que o que eu utilizava na segunda parte do acesso acabou não sendo o mesmo user-agent e por isto ele criava uma nova sessão. Cheque os sent-headers...

    ResponderExcluir

Comenta aí galera, vamos debater os assuntos!

Magazine Luiza