Postagens populares

Mostrando postagens com marcador Java. Mostrar todas as postagens
Mostrando postagens com marcador Java. Mostrar todas as postagens

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!

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!

sexta-feira, 16 de julho de 2010

Como criar um Certificate Store e assinar um JAR

Quande se trabalha com applets, tem-se alguns recursos limitados devido a segurança, entre eles, o acesso a arquivos do disco. Mas em alguns casos ou aplicações, você precisa deste acesso.

É possível ter este acesso, desde que você assine seu applet e o cliente declare que confia no emissor do certificado (uma janela do navegador se abre para tal).

Para criar o Certificate Store que é onde seu "certificado" vai estar. O correto é utilizar certificados digitais reais, mas para fins de desenvolvimento utiliza-se um próprio gerado no seu computador mesmo.

Os comandos são executáveis que vem com o JDK.


Gerando o Certificate Store

keytool -genkey -keyalg rsa -alias nome-do-cert-store

Ao digitar o comando acima, ele requisitará algumas informações como nome, nome da organização, etc. Digite todas as informações, incluindo a senha do Certificate Store.


Assinando o applet


jarsigner -storepass senha-do-cert-store-que-vc-digitou arquivo.jar nome-do-cert-store


Comentem!



Há!

sábado, 5 de junho de 2010

MimeType no Java: no pain!

Quando houve necessidade de verificar o MimeType de um arquivo no Java, pensei que seria tranquilo. Engano!

Muitas pessosa tem  dificuldade com isto, logo descobri ao pesquisar o assunto. Muitos utilizam bibliotecas de terceiros, para fazer algo, pensava eu, tão trivial. Bem, já devia saber, Java e Trivial são antonimos!

Bem, depende, na verdade é fácil, eu não sei se existe algum problema com a implementação (não sei porque até onde pesquisei, quase ninguém conhecia a solução desta maneira) ou se é por falta de informação do pessoal, mas é simples sim:

MimetypesFileTypeMap m = new MimetypesFileTypeMap();
String mimeType = m.getContentType(file);

onde file = instancia de java.io.File

É isto aí: para os mimes que utilizei até agora, ele detecta certinho.

Há!

quinta-feira, 27 de maio de 2010

Upload via FTP em um Applet Java

Em um projeto da empresa, foi necessário  implementar envio de arquivos via FTP, devido ao tamanho destes. A primeira coisa que surgiu foi: deve ser em JAVA.

Pesquisei as opções e o que teria que implementar, e me deparei com dois projetos muito bons:
  1. zUpload;
  2. jFtp


O zUpload é uma implementação em forma de Applet, muito genial, simples e que pode ser bem adaptada para sua necessidade, mas que functiona out-of-the-box se você tem urgencia.

O jFtp é a biblioteca que o próprio zUpload utiliza para manipular o FTP, que você pode utilizar para ter uma maior personalização.

Os dois são grandes projetos, e suprem a necessidade de enviar arquivos via FTP pela web totalmente.


Há!

terça-feira, 11 de maio de 2010

Java: ame ou ao menos finja

O Java realmente é tão bom como se diz?

Nunca tive muito contato com a linguagem, apesar de aprender a utilizá-la, até precisar implementar um sistema complexo e sem documentação: autenticação com e-token USB contendo um certificado digital.

Java é aclamado no mercado, mas acredito que isto vem da época que não existiam linguagens de programação multiplataforma, onde a máquina virtual do Java estava por todo lugar.

Mas Java é tão bom quanto se diz ou se espera?

Para mim e alguns outros colegas de profissão, não, a começar pelo aspecto que, para mim, é uma dos principais recursos dos programadores: Array!

Isso mesmo, tente criar um Array em Java (e compare com outra linguagem mais recente) para entender o que estou falando.

Como diz um amigo meu, o Pedro, Java é uma mer**, mas todo mundo diz que é bom porque é um inferno pra aprender e desenvolver, e depois que você passou todo aquele trabalho aprendendo e se acostumando, você não vai dizer para os outros que é ruim.

Claro que ele tem suas vantagens e pontos bons, mas no geral, existem coisas mais eficientes, a não ser que sua intenção seja aprender OO, aí o Java é tudo de bom, mesmo assim, vai gerar os trabalhos mais custosos e pesados (agora vão me atirar mil pedras, dizer que dá pra fazer tweak, mas veja bem, não é assim out-of-box).

Voltando ao Array, tente utilizar um índice que não existe no Java. Exception?!?

Você tem a execução do seu programa parada ou é obrigado a tratar uma exceção para uma coisa trivial como um índice não existente. Se você precisar calcular uma matriz tridimensional então...

Uma String nula não é considerada vazia, tudo bem, do ponto de vista filosófico, iremos concordar que é assim, mas para fins práticos, para testar se uma String é vazia existe um método chamado String.isEmpty(). Muito bom, pena que se ela for nula, é lançada uma exceção! Logo, para utilizar este método e testar se ela é vazia, eu preciso pelo menos atribuir vazio?! para ela. Hummm, que eficiente não? rs

O mercado também exige e valoriza bastante o Java, pelos mesmos motivos que citei acima. Não tem problema, já que só depende de nós mesmos mudar o mercado (não me venha com baboseiras de que é difícil) pois nós somos os profissionais e responsáves por escolher e adotar teconolgias ou não, incitar um cliente a desistir de algo que não lhe é realmente valioso tecnicamente.

Eu poderia falar muito, mas para encurtar, vou ter coragem de escrever o que ninguém teve a decência, ou coragem mesmo, de escrever: Java é uma mer**! Pronto, falei...


P.S.: Quando eu falo que Java é uma mer** é modo de falar pessoal!

P.S2.: Se alguém estiver imaginando, eu consegui sim implementar o e-token USB mesmo sem documentação e o Java sendo assim tão chato!

Há!

quinta-feira, 18 de março de 2010

Dica: criar Array sem complicação no JAVA

Para criar um array com dados rapidamente no JAVA, faça a seguinte:

Object[] o = { obj1, obj2 };

No exemplo criei um Array de Objects mas mas poderia ser qualquer Array teoricamente, como:

String[] o = { "Teste", "Teste2" };

Fácil?

Há!

Magazine Luiza