Page 2 of 4

Crear anotaciones en Java

Entre las versiones 1.5 y 1.6 del JDK se introdujeron las llamadas anotaciones de las que hoy muchos frameworks dependen. Básicamente es un agregado sintáctico que nos permite definir un comportamiento particular sobre clases, métodos, atributos y argumentos.

La forma de invocarlas es siempre con un arroba previo al nombre de la anotación. Por ejemplo, en Spring Boot, para indicar que una clase se comportará como un controlador REST, le damos la anotación @RestController:

@RestController
public class MiController {
    // metodos
}

Así de simple. Con solo agregar una anotación transformamos el comportamiento de nuestro programa.

En este artículo vamos a crear una anotación personalizada, y de paso entenderemos como funcionan por debajo. Para un mejor entendimiento nos dividiremos en 3 pasos: Definición de una anotación, su implementación en métodos y finalmente como le asignamos un comportamiento particular.

Read more →

Invocar servicios SOAP desde Spring Boot

Con las interfaces REST y más recientemente GraphQL, los servicios SOAP han caído rápidamente en desuso y hoy solo los sistemas legacy son quienes continúan haciendo uso de esta tecnología.

Si alguna vez has trabajado en este tipo de entornos donde hay mucha tecnología legacy y “enterprisey”, probablemente has tenido que integrar piezas de software más modernas contra estos remanentes tecnológicos.

En esta entrada veremos como invocar un servicio SOAP desde un componente Spring Boot. También abordaremos 2 particularidades de la invocación que es el seteo de un método de autenticación, y el paso de cabeceras HTTP en el llamado.

Read more →

Autenticación SSH vía llaves

Una de las medidas de seguridad recomendadas para proteger nuestros servidores es el uso de llaves SSH para autenticar usuarios.

Esto significa que tus usuarios ya no tendrán que ingresar usuario y contraseña, si no que mediante una llave instalada en su máquina propia, podrán acceder al servidor remoto.

Este esquema es una recomendación de seguridad para administradores de sistemas. Su uso se extiende también a usuarios de Git, ya que al soportar sincronización mediante SSH, también permite implementar autenticación mediante llaves.

Read more →

Autenticación con Jersey (JAX-RS)

Jersey es un framework para la creación de servicios REST en Java. Está basado en el estándar JAX-RS, que es básicamente la especificación de como se debe implementar un servicio REST en Java, por lo que Jersey vendría siendo la implementación de esta definición.

Existen muchos métodos para implementar autenticación sobre un servicio, podemos incluir servicios de 3eros como OAuth o bien podemos utilizar métodos más estandarizados como JWT.

En este post mostraré como implementar un mecanismo de autenticación similar a JWT pero con algunas diferencias. Implementar JWT resulta un poco engorroso a mi parecer, por lo que en este approach simplificaremos un poco las cosas pero sin sacrificar seguridad que es en el fondo lo que buscamos.

Read more →

Dockerizando y desplegando una aplicación Java en la nube

Las tecnologías de contenedores son prácticamente el estándar sobre el que construimos y desplegamos nuestras aplicaciones hoy en día, y es que las ventajas que nos ofrecen son muchas: Portabilidad, seguridad, facilidades para replicar despliegues y asegurar alta disponibilidad, etc.

Tradicionalmente nuestro flujo de trabajo implicaba construir fuentes y desplegar en un servidor de aplicaciones fijo. Pero que pasa si el día de mañana queremos movernos de host o escalar los recursos? Con las ventajas que nos entregan las tecnologías de contenedor plus las de los cloud providers como GCP o AWS, podemos manipular nuestras aplicaciones con una agilidad superior.

En este post se mostrará el flujo completo de empaquetado y despliegue de una aplicación Java en la nube. Para este caso usaremos Google: GCP, pero fácilmente puedes usar otro proveedor ya que en el fondo el procedimiento es el mismo, solo cambian las herramientas.

Read more →