Há quase 02 dois anos que trabalho em uma das mais respeitas e renomadas empresas de desenvolvimento software house do mercado meridional brasileiro. Nela encontrei diversas situações adversas e felizes mas em qualquer situação que houvesse sempre pude contar com o corpo de amigos, não só colegas, que fiz lá. Para sempre eles ficarão em minha lembrança "Like A Stone".
Abraço a todos os colegas e colaboradores da CWI Software.
GNU Linux Freak
"Linux: just do it!"
quinta-feira, abril 28, 2016
quarta-feira, fevereiro 26, 2014
Após assinar applet, continua aparecendo mensagem de PUBLISHER UNKNOWN e expiração em 6 meses
Este post consiste em detalhar meios de contornar o problema da atualização do java update 51 que demanda que todo e qualquer applet seja assinado digitalmente por uma entidade competente.
Então vão aí as dicas para tudo dar certo da 1ª vez.
Um applet sem assinatura e auto assinados exibem Publisher
Unknow (editor desconhecido) e passaram a ter sua execução bloqueada a partir
da versão 7.51 do JRE.
Para que essa mensagem não seja exibida, é necessário
assinar os JARs com um certificado válido emitido pela Certisign.
Porém, após seguir os passos para assinar os JARs, estes
continuaram a exibir a mensagem de Publisher Unknow. Além disso, ao serem
assinados ou verificados, exibirem um alerta de que a assinatura era válida
apenas por 6 meses, enquanto o certificado, recém emitido, era válido por 12
meses.
A documentação da Certsign se mostrou insuficiente e um
chamado de suporte nos levou a gerar um arquivo CSR (certificate signing
request) inválido, entre outras coisas.
Então vão aí as dicas para tudo dar certo da 1ª vez.
1.
Primeira dica importante: sempre utilize o
comando KEYTOOL e JARSIGNER do JDK 6. Os comandos do JDK 7 produzem
arquivos corrompidos, isto está documentado em vários blogs.
2.
Para gerar as chaves públicas e privadas:
keytool -genkey -alias -keyalg
RSA -keysize 2048 -keystore.jks
Serão feitas as seguintes
perguntas:
Defina a senha de segurança do
keystore (será utilizada para futuras alterações neste arquivo)
What is your first and last name? (Este
é o Common Name): Ex: Minha Empresa LTDA
What is the name of your organizational unit?
(Preenchimento livre - Ex. setor): Tecnologia
What is the name of your organization? (Razão
Social completa como consta no CNPJ): Minha Empresa LTDA
What is the name of your City or Locality? (Cidade,
por extenso): Ex. Rio de Janeiro
What is the name of your State or Province? (Estado,
por extenso): Ex. Rio de Janeiro
What is the two-letter country code for this
unit? - (Sigla do País, com duas letras): BR
Confirmar
Defina a Senha do certificado
(será utilizada para assinar os JARs)
Segunda dica importante: geração
de certificados de servidor, no campo CN deve ser informado o host+domínio.
Para certificados Code Signing o correto é a Razão Social da empresa,
exatamente igual ao que aparece no cartão CNPJ.
3.
Para gerar o CSR (Certificate Signing Request:
keytool -certreq -alias
-keyalg RSA -file .csr -keystore
.jks
4.
Guarde estes arquivos, suas senhas e o seu alias
em um local seguro. Se perder o JKS ou esquecer a senha do keystore ou do
certificado seu certificado não poderá ser usado. Se esquecer o alias use o
keytool –list –v –keystore .jks
5.
Envie o CSR para a CertSign
6.
A CertSign vai verificar seu CNPJ na Junta
Comercial e vai entrar em contato com você num telefone fixo que deverá estar
no nome da empresa. Se você não possuir telefone fixo registrado no nome da
empresa e este telefone não estiver cadastrado numa lista pública, a CertSign
vai te dar outras alternativas.
7.
Quando tudo estiver certo, você vai receber por
email três certifiados
Chave pública do seu certificado:
deve ser gravada num arquivo texto com nome .cer
CA intermediário: deve ser
gravada num arquivo texto com nome .cer
Seu certificado no formato pkcs7:
deve ser gravada num arquivo texto com nome .p7b
Terceira dica importante: você deverá utilizar um
arquivo keystore contendo sua chave privada mais toda a árvore de certificados,
os certificados deverão ser armazenados na ordem correta (raiz, CA
intermediário, seu certificado). Se isto não estiver desta forma, a assinatura
irá falhar. Para proceder desta forma, siga os passos:
8.
Tire uma cópia do seu arquivo keystore (.jks) e
renomeie para algo como _tree.jks
9.
Dê um duplo clique no arquivo .ptb (no Windows,
vai abrir com o gerenciador de certificados)
10.
Expanda a árvore até chegar numa pasta chamadas
Certificados, que vai conter 3 certificados em árvore
11.
Clique com o botão da direita no certificado
onde está escrito Public Primary Certification Authority – G5, todas as
tarefas, export... Grave o certificado no formato DER e extensão .cer na mesma
pasta onde gravou os certificados do passo 7. Utilize um nome como primary.cer
12.
Repita o procedimento para o certificado onde
está escrito Code Signing 2010 CA, grave com um nome como secondary.cer
13.
Importe estes dois certificados, primeiro o
primary e depois o code siginign, no arquivo _tree.jks:
keytool -import -trustcacerts -alias root -file
primary.cer -keystore _tree.jks
keytool -import -trustcacerts -alias secondary
-file secondary.cer -keystore _tree.jks
14.
Importe o seu certificado no arquivo
_tree.jks:
keytool -import -trustcacerts
-alias -file .cer -keystore
_tree.jks
15.
Assine todos os JARs utilizados no seu applet:
jarsigner" -keystore
_tree.jks -storepass -keypass
quinta-feira, janeiro 19, 2012
How To Write Bytes To File
OutputStream out = new FileOutputStream(file);
InputStream in = new ByteArrayInputStream(bytes);
byte[] outputByte = new byte[4096];
try
{
while (in.read(outputByte, 0, 4096) != -1) {
out.write(outputByte, 0, 4096);
}
in.close();
out.flush();
out.close();
}
catch (Exception e)
{
throw e;
}
finally
{
if (in != null) {
in.close();
}
if (out != null) {
out.flush();
out.close();
}
}
How To Get Amout Of Time Of A Method Execution
Como "pegar" o tempo total de execução de um método.
Calendar time = Calendar.getInstance();
// your code...
System.out.println("Time in milliseconds: " + time.getTimeInMillis());
Postagens "How To..."
Eu gostaria de iniciar essa série de postagens uma vez que não poucas vezes me deparo com a seguinte pergunta quando estou com alguma dificuldade: "Como eu faço para..." (How To).
Peço a liberdade para traduzir não ao literal, então vou tentar fazer postagens mais objetivas com o título de "How To..."
Acredito que esse tipo de postagem em blogs é mais objetiva e ajuda sobremaneira nas consultas a internet (googleadas).
Abraços e espero que aproveitem!
Daniel
domingo, agosto 28, 2011
PrimeFaces DataTable + DAO + Spring
This post is intended to explain how to develop a simple DAO using Spring and JSF PrimeFaces DataTable
Basically this post will cover the steps to build a simple application that uses DataTable component, Spring 3 as DAO.
First you have to download all jars needed to accomplish this task. We'll use PrimeFaces 3 and Spring Framework 3. All versions used are:
Spring Framework 3.0.5 - http://www.springsource.org/node/2880
NOTE: PrimeFaces 3 during the time I'm publishing this post is in its developtment stage. But I guess this won't be a huge problem. So feel free to use it as you wish. But be carefull if you usie dev distribution in a production application.
I won't waiste much time teaching how to configure your IDE. So it would be great if you already have done that so I can focus in what are the steps to create an application using these frameworks. Also, this post won't show you all features available for these framework as well. I assume that you already have knoledge in how to create a Eclipse project, import and configure all dependencies need. I
Please, import these jar into your Eclipse project:
Spring:
PrimeFaces:
Please, go primefaces' page to learn how to configure a project using PrimeFaces framework.
primefaces-3.0.M3-SNAPSHOT.jar
segunda-feira, junho 20, 2011
Problemas de encoding ao receber parametros de URL
Você já deve ter se deparado com problemas de encoding ao receber requisições de cujo conteúdo há caracteres latinos tais como "ç".
Bom, um ajuste eficiente disso é fazer o seguinte:
request.setCharacterEncoding("UTF-8");
String paramValue = URLDecoder.decode(request.getParameter("param"), "UTF-8");
Bom, segue aí a dica!
Abraços!
terça-feira, maio 31, 2011
Inverter String numa única linha
Se você quiser inverter uma String usando uma única linha.
System.out.println(new StringBuffer("http://www.youtube.com/watch?v=6dGEadbbxyw").reverse());
Abraços!
Marcadores:
inverter java String reverse StringBuffer
quinta-feira, maio 19, 2011
Instalando o Tortoise SVN Client
Neste post, eu mostro como instalar o Tortoise SVN Client. O ambiente no qual estou me baseando é o Ruindows 7, mas serve para qualquer sistema operacional baseado em Ruindows.
Primeiro, baixe o Tortoise SVN Client . Escolha a versão mais adequada para o seu sistema operacional: 32bits ou 64bits.
Pra instalar é fácil: next, next, next, Finish.
Reinicie no final para as configurações terem efeito.
Crie na raiz do C:\ um diretório chamado svn:
c:\svn
Acesso o diretório recém criado e clique com o botão direito do mouse sobre ele e, em seguida, no menu de atalho, clique em "SVN Checkout...".
Na janela de dialogo, informe o URL do repositório e clique em ok.
Informe o usuario e senha e baixo o conteúdo do repositório.
Assinar:
Postagens (Atom)