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!
quarta-feira, 25 de agosto de 2010
quinta-feira, 5 de agosto de 2010
Dica: Remover o cache de applets da máquina virtual JAVA
Essa é para quem já se bateu muito (que nem eu hehe) - como remover o "maldito" cache de applets JAVA no navegador.
Existe um diretório que armazena o cache dos applets e não existe uma forma de remove-lo, a não ser manualmente.
Para fazer isto, procure por um diretório com um nome parecido:
/home/usuario/.java/deployment/cache
Dentro deste diretório "cache" ele cria o diretório 6.0 (meu JDK é a versão 6, imagino que na 7 ele criará 7.0 e assim por diante) e dentro deste, um diretório com nome numérico começando pelo 0 e daí para a frente para cada execução.
Após a limpeza, é necessário fechar o browser e abri-lo novamente, caso contrário ele não encontrará nenhuma classe de nenhum applet que você tentar carregar.
That's it.
Há!
P.S.: JAVA SUCKS!
Existe um diretório que armazena o cache dos applets e não existe uma forma de remove-lo, a não ser manualmente.
Para fazer isto, procure por um diretório com um nome parecido:
/home/usuario/.java/deployment/cache
Dentro deste diretório "cache" ele cria o diretório 6.0 (meu JDK é a versão 6, imagino que na 7 ele criará 7.0 e assim por diante) e dentro deste, um diretório com nome numérico começando pelo 0 e daí para a frente para cada execução.
Após a limpeza, é necessário fechar o browser e abri-lo novamente, caso contrário ele não encontrará nenhuma classe de nenhum applet que você tentar carregar.
That's it.
Há!
P.S.: JAVA SUCKS!
Marcadores:
Applet Java,
Cache,
Cache de Applet Java,
Cache não limpa,
Java,
Problema
Assinar:
Postagens (Atom)