Seguridad: Conceptos
29/10/2009

- CA (Certification Authority): Firma la clave pública de una persona para que otros puedan verificar que realmente dicha clave pública pertenece a la persona.
- Certificate: La clave pública de un individuo firmada por una CA.
- PKI (Public Key Infrastructure): Private keys + Public keys + CA + Certificates
- Keystore: Almacén de claves que contiene las siguientes entradas (generalmente asociadas a un alias)
- Propia Private key
- Propio Certificate (Public key firmada por una CA -para dársela a terceros-)
- Certificates de terceros (Public keys de terceros firmados por una CA)
- Certificate de la CA (Public Key del CA -firmado por la propia CA-)
Servicios Web: Definiciones
29/10/2009

- Part: Parámetro.
- Port type: Agrupación de operaciones. Similar a lo que sería una clase Java con métodos estáticos.
- Binding: Asociación entre un “Port type” con un formato de mensaje (como SOAP) y un transporte (como HTTP).

Tengo instalado Eclipse 3.5.1 (con WTP y demás plugins para desarrollo J2EE) – y a la hora de instalar la última versión (1.4.1) del plugin Code Generator Wizard Guide for Eclipse de Axis2 me encuentro con que la generación no funciona lanzando siempre una java.lang.reflect.InvocationTargetException.
La solución:
- Cerrrar Eclipse
- Copiar “backport-util-concurrent-3.1.jar” y “geronimo-stax-api_1.0_spec-1.0.1.jar” de “$AXIS2_HOME/lib/” a “$ECLIPSE_HOME/plugins/Axis2_Codegen_Wizard_1.3.0/lib/“
- Añadir lo siguiente en el elemento “runtime” de “$ECLIPSE_HOME/plugins/Axis2_Codegen_Wizard_1.3.0/plugin.xml” :
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
<export name="*"/>
</library>
- Reiniciar Eclipse indicando en la línea de arrance el “-clean” para que actualice la configuración de los plugins.
Alternativamente puedes descargerte una versión del plugin ya parcheada que he dejado diponible aquí.
![]()
Ultimamente estaba teniendo problemas al arrancar mi Eclipse (versión 3.5.0) ya que el plugin m2eclipse (versión 0.9.9 – 20090820) intentaba actualizar los índices de los repositorios de Maven y fallaba en el intento dando siempre un NullPointerException.
Una posible solución, aunque tal vez no sea la mejor, consiste en limpiar la caché de nexus que utiliza el plugin, de tal modo que vuelva a generar todos los índices. Para ello nada mas facil que eliminar la carptea:
- <workspace>\.metadata\.plugins\org.maven.ide.eclipse\nexus
estando Eclipse cerrado.
Tras esto, deberías poder actualizar los índices sin problema.
tomahawk.tld versión 1.1.7 válido
01/10/2009

No deja de ser curioso encontrarse cosas como que el tld incluido en un proyecto de la Fundación Apache no es completamente correcto y no valida. Concretamente esto me ha ocurrido con el tld de la librería Tomahawk (versión 1.1.7) para JSF 1.2 del proyecto MyFaces.
Tras pasarme varias horas corrigiéndolo lo dejo disponible para que si alguien necesita una versión válida no tengas que volver a realizar las modificaciones a mano:
Rational Rose CURDIR
26/08/2009

Para poder cargar todos los sub-módulos de un proyecto del Rational al arrancar y que no de el problema de que no existe $CURDIR, hay que seguir los siguientes pasos:
- Abrir el Rational Rose (sin cargar ningún proyecto)
- File
- Edit Path Map…
- En Symbol escribir:
CURDIR - En Actual Path escribir
& - Add
Ya podemos cargar el proyecto sin problema.
Cómo poner en inglés el RSA
07/05/2009
![]()
Por defecto, el Rational Software Architech pone todos los menús en tu idioma (en mi caso el Español), ya que detecta el idioma del sistema operativo. El problema que los que estamos acostumbrados a usar el Eclipse con todas las opciones en Inglés, resulta un “engorro” utilizarlo así (ya que los menús se ordenan de modo diferente y cuesta encontrar una opción determinada).
Para “forzar” el uso del inglés, basta con añadir a la línea de comandos las definición de la variable de entorno “user.language” (también podemos especificar la región concreta con “user.region“) del siguiente modo:
-vmargs -Duser.language=en
![]()
Para poder conpilar con el SDK de Flex usando Maven, existen varios plugins. Entre ellos:
- flex-mojos (que es el que yo utilizo)
- Maven Flex Plugin
- Maven 2 Plugin for Adobe Flex 2
Pero antes de poder utilizar ningudo de ellos, lo primero es tener disponible en nuestro repositorio de Maven una copia del SDK de Flex (copia no disponible en los repositorios públicos por no ser de libre distribución).
Para consiguir instalar el SDK de Flex de forma sencilla en nuestro repositorio, dentro de flex-mojos, existe el mojo install-mojo que mediante el siguiente comando nos permite realizar la instalación en nuestro repositorio local:
mvn info.flex-mojos:install-mojo:2.0M6:install-sdk -Dflex.sdk.folder="C:\software\flex_sdk_3" -Dversion=3.1.0.2710
El anterior comando nos instalará el SDK situado en “C:\software\flex_sdk_3” en el repositorio y nos dejará disponibles a partir de ese momento varios artefactos, siendo los dos más importantes:
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>playerglobal</artifactId>
<version>3.1.0.2710</version>
<type>swc</type>
<scope>external</scope>
</dependency>
y
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>flex-framework</artifactId>
<version>3.1.0.2710</version>
<type>pom</type>
</dependency>
El primero es el compilador. Cosas de Java. JARs.
El segundo es el framework flex. Cosa de Flex. SWCs.
NOTA: La dependencia flex-framework es la que se debería utilizar como dependencia de tu proyecto. Ambas dependencias no se deberían utilizar juntas y por tanto, si aparecen ambas en el el mismo bloque de dependencias de tu proyecto es muy probable que algo vaya mal.
Ahora bien, existe un problema y es que cuando intentamos compilar la aplicación obtenemos un error de Maven indicando que no puede resolver una dependencia a playerglobal. Esto es devido a que la instalación que acabamos de realizar crea en el repositorio de maven (.m2\repository\com\adobe\flex\framework\playerglobal) un directorio con el nombre “9-3.1.0.2710” en vez del esperado “3.1.0.2710“. La solución pasa por renombrar el directorio (esto es, eliminar el “9-“) y renombrar el .pom y el .swc contenidos en dicho directorio (para que su versión no contenga el “9-“), y editar el archivo playerglobal-3.1.0.2710.pom corrigiendo la <version>.
Algunos enlaces de interés
Install-mojo
install mojo – makes playerglobal version have “9-” in front of it?
Maven and Flex Builder tutorial

A partir de la versión 3.4 de Eclipse, su sistema de gestión de plugins ha cambiado y ahora utiliza Equinox p2.
Debido a este cambio, ya no sirve la solución que empleaba en versiones anteriores.
Para obtener un resultado similar, ahora podemos definir una carpeta adicional de dropins especificando en el arranque (o en el fichero eclipse.ini) el parámetro:
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/path/dropins
Ahí podremos ir colocando nuestros nuevos plugins, cada uno en su propio directorio siguiendo la estructura:
- dropins/
- emf/
- eclipse/
- features/
- plugins/
- eclipse/
- gef/
- eclipse/
- features/
- plugins/
- eclipse/
- … etc …
- emf/
Algunos enlaces de interés
Instalación compartida de Eclipse
Installing Eclipse (3.4+) plugins in a directory other than ECLIPSE_HOME/plugins
Equinox p2 Getting Started
![]()
Tenía un proyecto construido con maven en el que mostraba en la cabecera el número de versión pero necesitaba además mostrar la fecha y hora en la que se construyó dicha versión (y así poder tener un seguimiento más preciso de incidencias asociadas a una versión y fecha dadas).
La versión y fecha de la misma, se muestran en una jsp, recuperando el valor a mostrar de un archivo .properties donde defino la propiedad del siguiente modo:
label.version = Ver. ${project.version} (${build.time})
Este fichero se encuentra alojado en src/main/resources y será procesado por Maven, realizando la sustitución, al realizar un process-resources.
El valor de “project.version” ya está definido en el propio pom.
Para conseguir el valor de build.time definiremos una tarea ANT usando el plugin de maven correspondiente, del siguiente modo:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<mkdir dir=”${project.build.directory}”/>
<tstamp>
<format property=”last.updated” pattern=”dd/MM/yyyy”/>
</tstamp>
<echo file=”${basedir}/target/filter.properties” message=”build.time=${last.updated}”/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
Ahora solamente nos falta especificar que los recursos sean filtrados y la ubicación del fichero utilizado para realizar el mismo:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<filters>
<filter>${basedir}/target/filter.properties</filter>
</filters>
Algunos enlaces de interés
Cookbook: How To Add Build Time To A JAR Manifest?
Maven: Adding Custom Attributes and Build Timestamp to Manifest












