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!

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!

quarta-feira, 21 de julho de 2010

Dica: como carregar helpers do Symfony além dos templates

Quem trabalha com Symfony pode aproveitar esta dica muito útil: carregar helpers em qualquer outro lugar além dos templates, como dentro de uma action por exemplo.

Para isso, digite:

sfLoader::loadHelpers(array ('HelperName1', 'HelperName2'));

Pronto!



Há!

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á!

quarta-feira, 7 de julho de 2010

Life in a Day

Mais um projeto colaborativo via internet, com o apoio do grande diretor Ridley Scott: http://www.youtube.com/lifeinaday

Filme o seu dia e poderá ter um trecho dele incluso.

Legal!

WITH CLAUSE

Lendo o manual do postgreSQL (8.4) descobri algo muito útil: a cláusula WITH.

Com ela você pode selecionar dados a partir de um outro select, algo como uma view "on the fly" ou uma tabela temporária, só se auto "destrói" após o uso. Já imaginei mil aplicações para isto, você consegue? Comentem...

Exemplo basicão:

WITH regional_sales AS (
        SELECT region, SUM(amount) AS total_sales
        FROM orders
        GROUP BY region
     ), top_regions AS (
        SELECT region
        FROM regional_sales
        WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
     )
SELECT region,
       product,
       SUM(quantity) AS product_units,
       SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;
 
 
Isto poderia ser escrito sem WITH, mas seria mais custoso pois precisaria de mais níveis de sub-selects.
Referência postgreSQL

sábado, 3 de julho de 2010

Foto publicada no Google Street View mostra criança em sua casa, SEM ROUPAS

Uma imagem publicada no Google Street View agitou as discussões em torno do serviço novamente: uma mãe achou a foto da sua rua no serviço, o único problema é que ele estava completamente nu.

Segundo ela, a empresa deveria se preocupar mais em verificar as fotos antes de publicá-las. Ela teme que um pedófilo possa achar a foto e algo possa acontecer. rs

Ela tem medo de pedófilo, mas deixa o filho correndo solto, nu, nos EUA, onde tá cheio de pedófilo e Serial Killer? Claro que o Google pode retirar a imagem, e existem ferramentas para reportar estas situações e assim sanar rapidamente, e o faz!

Por favor minha senhora!

Reclamar por reclamar, algumas pessoas perdem a noção...

Alguém aí acha que ela está certa? Eu não...

via geek.com.br

Magazine Luiza