post icon

Autenticarse contra un Web Service con Autenticación con Java y Visual Basic

Hace unos días una de las programadoras que más admiro me comentaba que necesitaba conectarse desde Java a un Web Service construido en .Net con autenticación, aunque este ejemplo no sólo sirve para WS server hechos con esta tecnología, igualmente servirá si fue creado con java, delphi, u otro lenguaje. Me pareció una tarea interesante que es relativamente sencilla de hacerla. También me di cuenta que en la Web no circula mucha información sobre esto, por eso aprovecho para hacer un post sobre el tema 😛

Bueno, el ejemplo lo mostraré desde dos clientes, uno hecho con Java y otro con Visual Basic .Net

En el caso de Java necesitaremos crear una clase extra para usarlo como credencial de red y va así..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package ws;
 
import java.net.Authenticator;
import java.net.PasswordAuthentication;
/**
 *
 * @author GeekZero@DevTroce.com
 */
 
public class MiAutenticador extends Authenticator {
 
    static final String user = "miUsuario"; // Login
    static final String pass = "miPassword"; // Password
 
    @Override
    public PasswordAuthentication getPasswordAuthentication() {
        return (new PasswordAuthentication(user, pass.toCharArray()));
    }
}

El cliente está hecho en una aplicación swing con los controles con sus nombres por omisión, teniendo un jTextField y un jButton, el código es el siguiente..

1
2
3
4
5
6
7
8
9
10
11
12
 private void clickws(java.awt.event.ActionEvent evt) {
        // credenciales para el WS
        Authenticator.setDefault(new ws.MiAutenticador());
        // instancia referenciada del WS
        ws.MiWebService wsrv = new ws. MiWebService ();
        try {
            // consumo del WS
            jTextField1.setText(wsrv.getMiWebServiceGetMiMetodoSoap().getMiMetodo(parametro1, parametro2). getMiMetodo().toString());
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"MENSAJE: " + e.getMessage());
        }
    }

Esto mismo lo hacemos en Visual Basic del siguiente modo, obviamente primero debemos crear la referencia del WS en el IDE, esto también es aplicable en el caso de Java o esto no funcionará..

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
	' instancia del web service referenciado
	Dim x As New ws.miWebService
	Try
		' asignacion de la credencial de red
		x.Credentials = New System.Net.NetworkCredential("miUsuario", "miPassword")
		' consumir el WS
		TextBox1.Text = x.GetMiMetodo(parametro1, parametro2).getMiMetodo
	Catch ex As Exception
		MessageBox.Show(ex.Message)
	End Try
End Sub

Nota: La referencia del WS lo hice con compatibilidad .Net 3.5 / Metro 1.3

Comentarios desde Facebook:

  1. avatar
    fardul COLOMBIA Google Chrome Linux
    4 Marzo 2013 at 14:07 #

    Hola gracias por el tuto, 😉 tengo el siguiente problema con el web service estaba consumiendo un web service pero sin autenticacion, ahora debo autenticarme. el ws server esta hecho en .net y el client esta en java pero no se como autenticarme desde java el hombre que lo hizo me dice que mire web service asmx. pero no eh entendido… mi pregunta es el deberia darme la url completa para el servicio, http://www.tttt.com/services/login/wsdl donde login envio los parametros de autenticacion, o ya hay un estandar y si lo hay como hago para hacer la autenticacion desde java (Codigo fuente)… Espero me puedas colaborar gracias por tu tiempo.!

  2. avatar
    fdcarlos MEXICO Internet Explorer Windows
    12 Agosto 2011 at 18:10 #

    disculpa soy principiante y me gustaria saver
    donde se declara la clase MiWebService y el metodo

    getMiWebServiceGetMiMetodoSoap().getMiMetodo(parametro1, parametro2). getMiMetodo().toString());

    podrias dar un ejemplo?

    otra pregunta: si este ejemplo tambien serviria para autoidentificarse en
    sitios https\\

  3. avatar
    GeekZero PARAGUAY Google Chrome Windows
    31 Mayo 2011 at 21:46 #

    el primero es una clase en java, el segundo lo que se ejecuta al hacer clic en un jButton e instancia la clase del codigo 1, y el tercer es el ejemplo en visual basic.net

  4. avatar
    lmrv MEXICO Mozilla Firefox Windows
    31 Mayo 2011 at 20:22 #

    wwwwwwwwowwwwwwwwwww muchas gracias !!!
    jiji
    oie una pregunta acerca del segundo codigo es un metodo dentro de la misma clase? o es otra clase de java?? en netbeans??

    y el tercer codigo es V.B

    como y donde lo implemento?? perdon
    pero no se mucho y de esto depende mi cal 🙁 de vdd espero me puedas ayudar!!

Trackbacks/Pingbacks

  1. Pasar un conjunto de datos por Web Service entre Java y DotNet - Puerto 25 - Site Home - TechNet Blogs UNITED STATES - 15 Abril 2011

    […] Autenticarse contra un Web Service con Autenticación con Java y Visual Basic […]

Responder