Servicios Web SOAP con JAX-WS, Spring y CXF (III): Securización TLS + BASIC

logo java

En la mayoría de servicios web será necesario incluir mecanismos tanto de autenticación como de cifrado que “securicen” la utilización del servicio. En SOAP se pueden utilizar varias alternativas, las dos que probablemente se utilizan con mayor frecuencia son las siguientes:

  • HTTPS(TLS) + BASIC: La autenticación BASIC consiste simplemente en el envío en el header del request de un par usuario/contraseña y con el uso del protocolo TLS las comunicaciones se cifran lo que garantiza la confidencialidad de los datos envíados. Esta combinación es fácil de implementar y suele aplicarse tanto a servicios web SOAP como REST proporcinando en muchos casos un nivel de seguridad suficiente.
  • WsSecurity: es un protocolo específico para SOAP y proporciona un elevado nivel de seguridad ya que, entre otras características, permite realizar una firma y cifrado de los mensajes a nivel de aplicación mientras que con TLS sólo garantizamos el cifrado y validez del mensaje a través de la red hasta el servidor de destino. Este mecanismo implica un pequeña merma del rendimiento ya que las aplicaciones clientes y servidor deben firmar los mensajes.

En esta tercera parte del tutorial se va a implementar el mecanismo TLS + BASIC en los ejemplos de los capitulos anteriores.

  1. Servidor
  2. Clientes
  3. Securización TLS + BASIC

    Seguir leyendo

Diseño Android: Tipografías personalizadas

android

Existen dos motivos que pueden llevarnos a tener que definir explícitamente el tipo de letra a utilizar en nuestra aplicación:

  • Queremos utilizar un tipo específico como parte del diseño de la aplicación.
  • Evitar que en caso de que el usuario cambie el tipo de letra por omisión de su dispositivo Android el diseño de nuestra aplicación pueda quedar “afeado”. Esta funcionalidad no está incluída originalmente en Android pero es proporcionada por algunos fabricantes como Samsung y algunas apps en dispositivos rooteados.

El atributo android:typeface de TextView sólo se aplica a las familias de tipos de letras por omisión del sistema por lo que no existe una forma directa de utilizar una letra personalizada incluída en la aplicación simplemente desde XML. En este artículo veremos algunas de las opciones más habituales para utilizar tipos de letras TrueType personalizados.

Como ejemplo, utilizaremos Roboto diseñada por Google especialmente para Android y que es el tipo de letra por omisión a partir de Android 4. Nuestra app de ejemplo mostrará siempre este tipo de letra independientemente de la versión de Android y su configuración.

Seguir leyendo

Persistencia en BD con Spring Data JPA (III): Auditoría

Tercera parte del artículo dedicado a la persistencia en BD con Spring Data JPA:

  1. Primeros pasos
  2. Repositorios personalizados
  3. Auditoría

Spring Data JPA proporciona un mecanismo sencillo y elegante para dotar de un sistema automatico de auditoria
a las entidades. Los campos de auditoría contemplados son la fecha de creación, fecha de última modificación, el usuario creador y el último que modificó la entidad. Vamos a implementar este mecanismo en nuestra demo paso a paso.

Seguir leyendo

Persistencia en BD con Spring Data JPA (II): Repositorios personalizados

Segunda parte del artículo dedicado a la persistencia en BD con Spring Data JPA:

  1. Primeros pasos
  2. Repositorios personalizados
  3. Auditoría

En el caso de que sea necesario acceder directamente al EntityManager y codificar operaciones con él podemos implementar nuestro propio repositorio conservando todas funcionalidades proporcionadas por los repositorios de forma estándar. Vamos a implementar el método del proyecto original que eliminaba los objetos de la entidad almacenados en la caché. En primer lugar, se crea una nueva interfaz con la definición del método. Por defecto el nombre de esta interfaz debe tener el sufijo “Custom”.

Seguir leyendo

Tareas programadas en Spring

logo spring

Es posible que al desarrollar una aplicación la mejor solución para ciertas funcionalidades sea la implementación de tareas programables, esto es, métodos que se ejecuten periódicamente en momentos determinados o bien cada cierto periodo de tiempo. El caso más típico consiste en la revisión de la base de datos para la generación de informes de seguimiento, el envío de notificaciones, realizar tareas de sicronización con otros sistemas, etc. Asimismo, estas tareas suelen formar parte de la propia aplicación ya que así se pueden utilizar los servicios, capa DAO, etc de la misma.

En Java se suele utilizar Quartz, sin embargo si utilizamos Spring y la casuística es sencilla no tenemos que recurrir a ninguna librería de terceros ya que con Spring 3 es sencillo definir ejecuciones períódicas de un método de un bean y es precisamente lo que se verá de forma práctica en este artículo.

Seguir leyendo

Diseño Android: Popup Menu


VERSIONES

  1. 08/03/2014 (Primera publicación)
  2. 17/05/2014:
    • Añadido color de fuente

android

El primer artículo de la serie “Diseño Android” de 2014 está dedicado al widget PopupMenu que permite mostrar un menú contextual en un popup ubicado junto al elemento que lo despliega. Este widget fue introducido en HoneyComb (API 11) pero puede ser utilizado en versiones anteriores ya que se encuentra incluido en la libreria de compatibilidad v7.

La siguiente captura de la app oficial de Youtube muestra un popup menu como el que se va a utilizar en el presente artículo.

youtube-popup menu

Entorno de pruebas:

Requisitos: Conocimientos básicos de Android SDK. Se utilizará Eclipse como IDE.

Seguir leyendo

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 47 seguidores