oauth
Class OAuth

java.lang.Object
  extended by oauth.OAuth

public class OAuth
extends java.lang.Object

Implementación de algunas utilidades para el uso transparente del protocolo OAuth.


Constructor Summary
OAuth(java.lang.String consumerKey, java.lang.String sharedSecret)
          Inicializa un objeto OAuth de modo que internamente se inicie una sesión con los secretos proporcionados.
OAuth(java.lang.String ck, java.lang.String ss, java.lang.String at, java.lang.String ats, int ate, java.lang.String sc, int sce)
          Inicializa un objeto OAuth de modo que internamente se inicie una sesión con los secretos proporcionados.
 
Method Summary
protected  void askUserForVerifier()
          (SOBREESCRIBIBLE) Pide al usuario por línea de comandos el código que obtiene tras el inicio de sesión como usuario de Yahoo!
 java.lang.String createAuthorizationHeader(java.lang.String method, java.lang.String url, java.lang.String[][] params)
          Genera el contenido de la cabecera Authorization que se debe incluir en peticiones OAuth HTTP con los datos criptográficos disponibles y la información específica de la petición.
 java.lang.String[][] getSecrets()
          Devuelve una lista de pares correspondiente a la información OAuth obtenida.
 boolean isWorking()
          Devuelve true si se dispone de material criptográfico en vigencia para proporcionar cabeceras Authorization según OAuth.
protected  void setOauthVerifier(java.lang.String verifier)
          Asigna un valor al atributo privado oauthVerifier, necesario para que la inicialización de la sesión OAuth se complete.
 boolean touch()
          Renueva la clave para la generación de cabeceras Authorization en caso necesario.
 java.lang.String urlEncode(java.lang.String text)
          Transforma un String en otro que puede ser enviado como la parte de parámetros de una URL.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OAuth

public OAuth(java.lang.String ck,
             java.lang.String ss,
             java.lang.String at,
             java.lang.String ats,
             int ate,
             java.lang.String sc,
             int sce)
Inicializa un objeto OAuth de modo que internamente se inicie una sesión con los secretos proporcionados.

Este constructor es útil cuando se conocen todos los secretos relativos a una sesión iniciada con OAuth, de modo que no sea necesario iniciar otra.

Para saber si se dispone de una sesión activa al finalizar el constructor, se debe utilizar el método isWorking()


OAuth

public OAuth(java.lang.String consumerKey,
             java.lang.String sharedSecret)
Inicializa un objeto OAuth de modo que internamente se inicie una sesión con los secretos proporcionados.

Este constructor es útil cuando no se conocen más que la Consumer Key y el Shared Secret y es necesario iniciar una sesión con OAuth.

Para saber si se dispone de una sesión activa al finalizar el constructor, se debe utilizar el método isWorking()

Method Detail

isWorking

public boolean isWorking()
Devuelve true si se dispone de material criptográfico en vigencia para proporcionar cabeceras Authorization según OAuth.

Returns:
true si se pueden firmar peticiones OAuth, false en caso contrario.

touch

public boolean touch()
Renueva la clave para la generación de cabeceras Authorization en caso necesario.

Comprueba si el Access Token del que se dispone es válido. Si no existe o ha caducado emprende las acciones necesarias para obtener uno en vigencia.

Importante: Este método debe usarse con precaución. Debería finalizar siempre con éxito (y devolver true en consecuencia), el caso contrario se debería a un fallo poco común debido probablemente a peticiones demasiado seguidas. NUNCA debe usarse en un bucle:

while (!oauth.touch())

sino que se debe informar del problema y postponer una nueva llamada.

Returns:
true si se pueden generar cabeceras Authorization, false en caso contrario.

askUserForVerifier

protected void askUserForVerifier()
(SOBREESCRIBIBLE) Pide al usuario por línea de comandos el código que obtiene tras el inicio de sesión como usuario de Yahoo! Este paso es necesario para completar la inicialización de la sesión OAuth.

Este método puede sobreescribirse por una clase que herede de ésta para proveer otro tipo de interfaz, pero su ejecución siempre debe incluir una llamada a setOauthVerifier(String verifier) con la respuesta obtenida.

See Also:
setOauthVerifier(String)

setOauthVerifier

protected void setOauthVerifier(java.lang.String verifier)
Asigna un valor al atributo privado oauthVerifier, necesario para que la inicialización de la sesión OAuth se complete.

Parameters:
verifier - nuevo valor del atributo oauthVerifier

createAuthorizationHeader

public java.lang.String createAuthorizationHeader(java.lang.String method,
                                                  java.lang.String url,
                                                  java.lang.String[][] params)
Genera el contenido de la cabecera Authorization que se debe incluir en peticiones OAuth HTTP con los datos criptográficos disponibles y la información específica de la petición.

Parameters:
method - método de petición HTTP: GET, POST o HEAD.
url - URL a la que se enviará la petición.
params - array de parámetros en la forma nombre-valor. En cada fila contiene un array de 2 Strings, de modo que en la primera posición aparezca el nombre del parámetro y en la seguda el valor. Si la petición no tiene parámetros, debe ser null.
Returns:
el contenido de la cabecera Authorization.

getSecrets

public java.lang.String[][] getSecrets()
Devuelve una lista de pares correspondiente a la información OAuth obtenida.

En cada fila del array hay un array de Strings de dos posiciones: la primera corresponde al nombre y la segunda al valor de cada dato.

Los nombres de los datos OAuth devueltos son "access_token", "access_token_secret", "access_token_expiry", "session_credential" y "session_credential_expiry".

Importante: los datos relativos al Access Token pueden cambiar en el transcurso del tiempo durante la ejecución del cliente.

Returns:
lista de pares nombre-valor de los datos OAuth en forma de array de Strings de dos dimensiones

urlEncode

public java.lang.String urlEncode(java.lang.String text)
Transforma un String en otro que puede ser enviado como la parte de parámetros de una URL.

Parameters:
text - el String que debe ser codificado.
Returns:
el texto convenientemente codificado.