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!
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
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
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á!
É 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á!
Marcadores:
Applet Java,
Assnar Applet,
Certificado Digital,
Certificate Store,
JAR,
Java,
Programação
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á!
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:
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á!
Pesquisei as opções e o que teria que implementar, e me deparei com dois projetos muito bons:
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á!
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á!
Marcadores:
Desenvolvimento,
Java,
OO,
Programação,
Web
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á!
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á!
Assinar:
Postagens (Atom)