PRODUCTOS
INSTITUCIONAL
COMUNIDAD
AYUDA
MI CUENTA
EN PT ES
13 de Marzo/2007

Consumir servicios web bajo https y/o autenticación

¿Cómo consumir un servicio web bajo https?, ¿cómo consumir un servicio con autenticación?, ¿son procesos complicados?

La movida de los GXtips sigue su curso. Consejos claros y prácticos que nos simplifican las tareas a la hora de trabajar. En esta oportunidad, Gonzalo Cuiñas, integrante del Equipo de Soporte de Artech, nos explica cuáles son los pasos necesarios para consumir un servicio web bajo autenticación. 

Consumir un servicio web bajo https o autenticación puede parecer algo complicado cuando en realidad no lo es. Básicamente el consumir un web service bajo https implica 3 pasos fundamentales:

• Consumir el wsdl que se encuentra bajo https
• Guardar el certificado del servidor en un keystore
• Consumir el web service indicándole a la aplicación dónde está el keystore con el certificado.

Consumiendo el wsdl

En el caso de servicios bajo https, es necesario obtener el wsdl como archivo para luego inspeccionarlo con el WSDL Inspector de manera local usando el protocolo file. Una manera de obtener el wsdl puede ser accediendo al mismo mediante el browser para luego hacer un “Save as” de la página. Una vez inspeccionado el servicio ya se puede programar el consumidor del web service como se hace comúnmente. La única salvedad es que será necesario crear una variable del tipo Location para indicar que el web service está bajo https, por ejemplo:

&location = getlocation("org_tempuriaction__wssuma")
&location.port = 8443
&location.secure = 1
&suma = &ws.execute(5, 3)

Guardando el certificado del servidor en un keystore

Es necesario esclarecer que para poder comunicarse con un recurso bajo https es necesario tener instalado el certificado del servidor con el cual nos queremos comunicar. Este certificado contiene (entre otras cosas) la clave pública con la cual se encripta la información que se envía y que solo el servidor sabe desencriptar con su clave privada (más información aquí). Por lo tanto, a la hora de consumir un servicio bajo https necesitaremos el certificado del servidor para poder establecer la comunicación.

Una vez que obtenemos el certificado debemos guardarlo en un keystore, que básicamente es un “almacén de certificados” que nos permite agregar nuevos certificados o eliminarlos (entre otras cosas). Una manera de manipular/administrar estos keystores es mediante la herramienta “Keytool.exe” que trae el JDK.

Indicando la ubicación del keystore en la aplicación java

A partir de ahora queda indicarle a la aplicación la ubicación del keystore para que al momento de establecer la comunicación sepa de dónde tomar el certificado. Para esto se deben configurar las “system properties”: javax.net.ssl.trustStore y  javax.net.ssl.trustStorePassword. Algo que se hace comúnmente es agregar dichas propiedades en la instancia de la máquina virtual lo cual se puede hacer en las Interpreter Options de GX.

En caso contrario se pueden configurar por código agregando las siguientes líneas en la rutina que consume el servicio (o en cualquier otra parte de la aplicación que se ejecute antes de consumir el servicio):

java System.setProperty("javax.net.ssl.trustStore", "C:\MiKeystore");
java System.setProperty("javax.net.ssl.trustStorePassword", "MiPassword");

Para poder leer el documento completo, en donde se incluye cómo trabajar con web services con autenticación, haga clic aquí.

 

Links
Artículo Completo en el Wiki de la Comunidad
Envíe su comentario

Noticias relacionadas

Noticias

Conozca

Plataforma de Desarrollo
Generador de Aplicaciones Móviles
Whitepapers
Preguntas Frecuentes
Planes y Precios
Testimonios
Historias de Éxito
GeneXus for SAP
GeneXus Cloud Services
Legacy Modernization
Mis aplicaciones
Downloads

Aprenda GeneXus

Cursos en línea gratis
Primeros pasos
Calendario de cursos
Certificaciones
Aprenda en un móvil
Socios Académicos
GeneXus for Students

Extienda GeneXus

GeneXus Marketplace
Extensions
Patterns
User Controls
External Tools
External Objects

Conecte

Encuentro Internacional GeneXus
Programa de partners
Encuentros GeneXus
GeneXus Wiki
Soporte
Distribuidores
Solution Partners

¡Contáctenos!

¡Llámenos!
Trabaje con Nosotros
GeneXus Brasil
GeneXus China
GeneXus España
GeneXus Italia
GeneXus Japón
GeneXus México
GeneXus Portugal
GeneXus USA
Facebook
|
Google +
|
Linkedin
|
StackOverflow
|
Twitter
|
Youtube
|
RSS Feed
© Todos los derechos reservados. GeneXus™ y sus productos son marcas registradas por GeneXus S.A.