Ir al contenido principal

Instalando Apache NetBeans 10 y configurarlo con Jakarta EE

Autenticacion Google

Este es un pequeño y minúsculo tutorial de cómo usar la autenticación de Google.

Aunque este método no es el recomendado para autenticar una aplicación usando una cuenta de Google, esto nos puede dar pie para conocer el SaaS (Software as a Service) usando Google desde NetBeans.

1. Crearemos una aplicación Java ya sea Desktop o Web. Igual da :)
2. Abrimos el panel de Prestaciones (Services) Ctrl+5
3. Seleccionamos el nodo Servicios Web > Google > Accounts Service > [accounts] >[ClientLogin] > accounts_clientLogin

4. Lo arrastramos y lo soltamos sobre el editor de código de Java. Debería mostrar una ventana que pide parámetros para el servicio de Google. Yo lo hice sobre un JSP, y me muestra lo siguiente:
Naturalmente que el passwd es de cada uno.
Clic en Aceptar y con esto nos generará un código especial.

5. Hay que definir un key único. Lo que recomiendo es hacer un md5 de cualquier texto que le guste. Por ejemplo, para la frase "Anita lava la tina", el md5 generado es "064439084cee1308a77cb7a9aa67773a" y lo usaré como key. Así que, abrimos el archivo googleaccountsserviceauthenticator.properties que se creó en el proyecto y colocamos ese valor para la propiedad api_key.
6. Editamos el código fuente donde insertamos el SaaS como algo a lo siguiente:


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%@ page import="org.netbeans.saas.*, org.netbeans.saas.google.*" %>
        <pre>
            <%

            try {
                String accountType = "GOOGLE";
                String email = "diego.silval@gmail.com";
                String passwd = "loremloremlorem";
                String service = "xapi";
                String source = "apuntesdejava-demogoogle-1";

                RestResponse result = GoogleAccountsService.accountsClientLogin(accountType, email, passwd, service, source);
                //TODO - Uncomment the print Statement below to print result.
                if (result.getResponseCode() == 200) {
                    out.println("The SaasService returned:\n" + result.getDataAsString() + "");
                    out.println("Response: " + result.getResponseMessage());
                } else {
                    out.println("Hubo error en la autenticacion:" + result.getResponseMessage());
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }

            %>

        </pre>

    </body>
</html>
Y listo.. lo ejecutamos, y nos debería mostrar los tokens de respuesta.

En otro post comentaré cómo acceder en sí a los servicios de google. Son bastantes y muy interesantes.

Comentarios

Entradas más populares de este blog

RESTful... la forma más ligera de hacer WebServices (Parte 1)

Quienes hayan usado SOAP para WebService, sabrán que es bien fácil de diseñar, pero algo complicado de consumir: se necesita toda una API para construir los clientes utilizando el WSDL. Por ejemplo, para PHP se necesita de la biblioteca NuSOAP. Entonces, para lograr el concepto de "lenguaje único XML" es un dolor de cabeza. Y más aún si el cliente es tan simple como JavaScript, manejar XML de SOAP provocaría suicidos masivos... o no usar WebServices.

Además, con SOAP se permite crear un solo servicio y ponerle varios métodos. Esto puede llevar a un mal diseño del servicio ya que podría tener un servicio que haga de todo: por ejemplo, un servicio de manejo de Clientes que permita también manejar Proveedores.

RESTful es una propuesta muy interesante de Roy Fielding que permite manejar los servicios web con métodos definidos, manteniendo la simpleza del protocolo como XML, pero que cada servicio sea identificado únicamente con un solo URI.

En este post veremos cómo crear un Ser…

¿Por valor o por referencia?

Esta es una pregunta existencial para todo programador Java. Cada uno encuentra una respuesta satisfactoria. Pero ahora veremos, basándonos en el libro para Certificación SCJP 1.5 de Katty Sierra, sobre la respuesta correcta.

Contraseñas encriptadas con Java

¿Quién no ha querido encriptar texto o archivo? Hay diversas maneras para hacer eso, por ejemplo, utilizando un diccionario donde se reemplazara cada caracter por un código.. y para poder desencriptarlo se debería utilizar el mismo diccionario para revertir el proceso. Pero si el diccionario cae en manos de alguien que no queremos que lo sepa, entonces estamos en peligro.
Cuando yo programaba en pascal, mi encriptación favorita era invirtiendo los bits... pero cualquiera también puede invertir los bits y listo.
Pero ya gente experta logró algoritmos de encriptación populares. Los más conocidos: MD5 y SHA.
En este post hablaremos cómo encriptar texto, sobretodo las contraseñas, utilizando MD5 o SHA.