Jueves, 22 de abril de 2010
En este primer artículo sobre el recientemente liberado CodekoLib vamos a tratar una clase muy simple pero que puede ahorrar muchos quebraderos de cabeza. La clase es InstaladorCertificados.
Si alguna vez has tenido que realizar con Java alguna conexión https habrás descubierto que es una tarea complicada y tediosa. La idea básica es que al igual que cuando accedes con tu navegador a una dirección https tienes que aceptar e instalar el certificado de la web, cuando accedes desde Java tienes que proceder de la misma manera.
La clase InstaladorCertificados te ahorra ese trabajo realizando la descarga e instalación del certificado de una forma muy simple. Simplemente hay que realizar una llamada al método instalar() antes de realizar las conexiones. Así para acceder a la url https://midominioseguro.com simplemente habría que hacer la siguiente llamada:
InstaladorCertificados.instalar("https://midominioseguro.com");
Con esta simple llamada ya tendremos el certificado instalado y podremos trabajar con normalidad. Por supuesto podemos pasar como parámetro una URL en vez de una cadena de texto.
Si no sabes si la url es de una conexión https puedes realizar la llamada a instalar() sin preocuparte ya que la clase se encarga de verificar que la url es de una conexión https antes de realizar cualquier operación.
La clase se encarga de crear un KeyStore temporal donde almacenar los certificados y asignarlo como el KeyStore en uso. Además la clase te permite definir tu propio KeyStore por si deseas mantenerlo entre ejecuciones o usarlo para otras aplicaciones. Para usar un KeyStore propio se utiliza la clase CodekoKeyStore de la siguiente forma:
//El archivo donde se almacenan los certificados
File ksFile=new File("mi_archivo_keystore.ks");
//La clave del KeyStore
String ksClave="la_clave_de_mi_KeyStore";
//Creamos el archivo keystore
CodekoKeyStore ks=new CodekoKeyStore(ksFile,ksClave );
//Lo asignamos para que Java utilice este KeyStore
//a la hora de buscar certificados instalados
ks.asignarComoSSLKeyStore();
//Opcionalmente si vamos a instalar nuevos certificados
//le decimos a InstaladorCertificados que use ese KeyStore
InstaladorCertificados.setKeyStore(ks);
Por último la clase InstaladorCertificados provee de un método para evitar los errores cuando accedemos a urls https con el certificado mal creado debido a que este es para un dominio diferente al que se está accediendo (por ejemplo accedemos por localhost y el certificado es para midominio.com). Aunque esta práctica no es recomendable puede haber momentos en los que no tengamos otra opción. Para evitar errores accediendo a estas urls simplemente debemos usar la función deshabilitarHostNameVerification():
//Deshabilitamos el control de nombre de dominios en los certificados
InstaladorCertificados.deshabilitarHostNameVerification();
//Para habilitarla de nuevo simplemente hay llamar
//a la función con el parámetro false
InstaladorCertificados.deshabilitarHostNameVerification(false);
Con este simple clase podremos realizar de forma cómoda todas las operaciones con urls seguras sin tener que complicarnos la vida con los certificados SSL.
Miércoles, 24 de marzo de 2010

CodekoLib
Codeko ha liberado su biblioteca para Java CodekoLib bajo licencia
GNU/LGPL. Esta biblioteca consiste en una serie de utilidades y funciones de uso común en los diferentes proyectos Java de Codeko.
Han sido varias las razones de su liberación.
Por un lado, simplemente porque no tiene sentido que no sea libre. Por otro, porque aunque la librería es propiedad de Codeko, lógicamente la entregamos a los clientes junto con los fuentes de sus programas y la mejor forma de hacer esto es mediante una licencia LGPL. Por último creemos que puede ser útil para los desarrolladores que quieran hacer uso de la biblioteca a modo de code snippets.
Se ha depurado la documentación y se está trabajando en ampliarla y mejorarla. Además se realizarán una serie de artículos en este blog sobre las diversas partes de la biblioteca.
El proyecto está alojado en Google Code y desde la página del proyecto se puede acceder a los fuentes, los binarios y la documentación.
Para más información visita la web del proyecto http://code.google.com/p/codekolib/.
Miércoles, 18 de marzo de 2009
Swing Application Framework incorpora la ejecución de acciones como tareas en segundo plano. Estas tareas se pueden definir para que bloqueen la interfaz gráfica del programa. Cuando se bloquea la interfaz gráfica es cuando entran en juego los Input Blockers y de ellos, y de como personalizarlos, trata este artículo.
Leer más…
Martes, 10 de marzo de 2009

Ignotus: Magia! para tu biblioteca.
Ya está disponible la nueva versión de
Ignotus v1.1.2.
Como principal novedad de esta versión se ha adaptado el recuperador de datos para los cambios en la web del Ministerio del Cultura. Además Ignotus es ahora capaz de recuperar datos desde Google Books y WorldCat.
Se ha creado además una versión ejecutable para Windows. Con un sólo ejecutable (perfecto para tu pendrive) podrás llevar tu Ignotus donde quieras.
Además se han realizado algunas mejoras estéticas y corregidos algunos problemas.
Visita la sección de Ignotus para descargarlo/ejecutarlo.