org.viafirma.cliente
Class ViafirmaClient

java.lang.Object
  extended by org.viafirma.cliente.ViafirmaClient

public class ViafirmaClient
extends java.lang.Object

Cliente de Viafirma. Instancia que utilizan los clientes para solicitar los servicios básicos que ofrece la plataforma. Para crear una instancia de esta clase utilice ViafirmaClientFactory Para más información consulte: http://www.viafirma.org/api_cliente.html

Author:
Felix Garcia Borrego (borrego at gmail.com), Alexis Castilla Armero (Pencerval at gmail.com)
See Also:
ViafirmaClientFactory

Field Summary
static java.lang.String MASK_URL_ID
          Mascara utilizada sobre PARAMETER_URL_DEFAULT_AUTHENTICATION_PROVIDER para contruir la url del usuario.
 
Method Summary
 void autenticar(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Inicia el proceso de autenticación utilizando el protocolo OpenID.
 void autenticar(java.lang.String urlId, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Inicia el proceso de autenticación utilizando el protocolo OpenID.
 byte[] buildInfoQRBarCode(java.lang.String codFirma)
          Retorna una imagen png con el código de barras y QR code del documento custodiado.
 FirmaInfoViafirma checkDocumentSigned(byte[] originalData, java.lang.String id)
          Chequea la validez del documento.
 FirmaInfoViafirma checkOrignalDocumentSigned(byte[] originalData, java.lang.String id)
          Chequea la validez del documento original indicado.
 UsuarioGenericoViafirma digest(java.util.Map<java.lang.String,java.lang.String> result)
          Genera una representación de un usuario desde el map de datos recuperado.
 FirmaInfoViafirma digestFirma(java.util.Map<java.lang.String,java.lang.String> result)
          Genera una representación del resultado de firma desde el map de datos recuperado desde OpenID.
 byte[] getDocumentoCustodiado(java.lang.String codFirma)
          Retorna el document originalo que ha sido firmado.
 FirmaClienteRMI getRemoteObject()
           
 long getTamanyoMaximoDocumento()
          Get del tamaño maximo del archivo para poder controlarlo desde el controler
 java.lang.String getXMLDocument(java.lang.String codFirma)
          Devuelve un XMLSignature asociado al idenficidador de firma indicado.
 boolean isResponseAuthentication(javax.servlet.http.HttpServletRequest request)
          Indica si la petición contiene los datos de respuesta OpenId.
 boolean isResponseCancel(javax.servlet.http.HttpServletRequest request)
          Indica si la respuesta OpenId ha sido cancelada.
 java.lang.String prepareFirma(java.lang.String tituloFile, TypeFile typoFichero, byte[] bytesToSign)
          Sube el fichero que deseamos firmar y devuelve un identificador temporal ( No es el identificador final de la firma ).
 java.util.Map<java.lang.String,java.lang.String> processResponseAuthentication(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse)
          Procesa el resultado de la autenticación para extraer los datos del usuario y devolverlos.
 java.util.Map<java.lang.String,java.lang.String> processResponseFirma(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse)
          Procesa el resultado de la firma para extraer los datos del usuario.
 boolean sendSignMailByServer(java.lang.String subject, java.lang.String mailTo, java.lang.String texto, java.lang.String htmlTexto, java.lang.String alias, java.lang.String password)
          Permite el envío de emails firmados digitalmente.
 java.lang.String signByServer(byte[] datosToSign, java.lang.String alias, java.lang.String password)
          Firma los datos utilizando un certificado almacenado en el servidor.
 java.lang.String signByServerWithType(byte[] datosToSign, java.lang.String alias, java.lang.String password, TypeFormatSign type)
          Firma los datos utilizando un certificado almacenado en el servidor.
 void solicitarFirma(java.lang.String idFirma, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Envia al usurio a la pantalla de firma donde se cargara el Applet de firma.Se firmara el documento enviado anteriormente.
 void solicitarFirma(java.lang.String idFirma, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String uriRetorno)
          Envia al usurio a la pantalla de firma donde se cargara el Applet de firma.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MASK_URL_ID

public static final java.lang.String MASK_URL_ID
Mascara utilizada sobre PARAMETER_URL_DEFAULT_AUTHENTICATION_PROVIDER para contruir la url del usuario. Su valor #ID# sera remplazado el el identificador del usuario.

See Also:
Constant Field Values
Method Detail

autenticar

public void autenticar(javax.servlet.http.HttpServletRequest request,
                       javax.servlet.http.HttpServletResponse response)
                throws InternalException
Inicia el proceso de autenticación utilizando el protocolo OpenID. El Identificador OpenId es autogenerado basado en PARAMETER_URL_DEFAULT_AUTHENTICATION_PROVIDER Tras generar el identificador llama al metodo public void autenticar(String urlId, HttpServletRequest request, HttpServletResponse response) throws InternalException.

Parameters:
request -
response -
Throws:
InternalException

processResponseAuthentication

public java.util.Map<java.lang.String,java.lang.String> processResponseAuthentication(javax.servlet.http.HttpServletRequest httpRequest,
                                                                                      javax.servlet.http.HttpServletResponse httpResponse)
                                                                               throws InternalException
Procesa el resultado de la autenticación para extraer los datos del usuario y devolverlos.

Parameters:
httpRequest -
httpResponse -
Throws:
InternalException

isResponseAuthentication

public boolean isResponseAuthentication(javax.servlet.http.HttpServletRequest request)
Indica si la petición contiene los datos de respuesta OpenId.

Parameters:
request -
Returns:
boolean

isResponseCancel

public boolean isResponseCancel(javax.servlet.http.HttpServletRequest request)
Indica si la respuesta OpenId ha sido cancelada.

Parameters:
request -
Returns:

autenticar

public void autenticar(java.lang.String urlId,
                       javax.servlet.http.HttpServletRequest request,
                       javax.servlet.http.HttpServletResponse response)
                throws InternalException
Inicia el proceso de autenticación utilizando el protocolo OpenID.

Parameters:
urlId - - url OpenId(utilizada)
request -
response -
Throws:
InternalException

prepareFirma

public java.lang.String prepareFirma(java.lang.String tituloFile,
                                     TypeFile typoFichero,
                                     byte[] bytesToSign)
                              throws InternalException
Sube el fichero que deseamos firmar y devuelve un identificador temporal ( No es el identificador final de la firma ).

Parameters:
tituloFile - ( Titulo del fichero )
typoFichero - ( Extension del fichero )
bytesToSign - ( Byte array de los datos del fichero )
Returns:
Identificador asignado al proceso de firma(este indentificador tendra validez de 10 mins).
Throws:
InternalException

processResponseFirma

public java.util.Map<java.lang.String,java.lang.String> processResponseFirma(javax.servlet.http.HttpServletRequest httpRequest,
                                                                             javax.servlet.http.HttpServletResponse httpResponse)
                                                                      throws InternalException
Procesa el resultado de la firma para extraer los datos del usuario.

Parameters:
httpRequest -
httpResponse -
Returns:
Map Con los datos de la firma.
Throws:
InternalException

solicitarFirma

public void solicitarFirma(java.lang.String idFirma,
                           javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response)
                    throws InternalException
Envia al usurio a la pantalla de firma donde se cargara el Applet de firma.Se firmara el documento enviado anteriormente.

Parameters:
idFirma - temporal
request -
response -
Throws:
InternalException

solicitarFirma

public void solicitarFirma(java.lang.String idFirma,
                           javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response,
                           java.lang.String uriRetorno)
                    throws InternalException
Envia al usurio a la pantalla de firma donde se cargara el Applet de firma. Se firmara el documento enviado anteriormente.

Parameters:
idFirma -
request -
response -
uriRetorno - ( si es null sera autogenerada )
Throws:
InternalException

digest

public UsuarioGenericoViafirma digest(java.util.Map<java.lang.String,java.lang.String> result)
Genera una representación de un usuario desde el map de datos recuperado.

Parameters:
result -
Returns:
UsuarioGenericoViafirma

digestFirma

public FirmaInfoViafirma digestFirma(java.util.Map<java.lang.String,java.lang.String> result)
Genera una representación del resultado de firma desde el map de datos recuperado desde OpenID.

Parameters:
result -
Returns:
FirmaInfoViafirma

signByServer

public java.lang.String signByServer(byte[] datosToSign,
                                     java.lang.String alias,
                                     java.lang.String password)
                              throws InternalException
Firma los datos utilizando un certificado almacenado en el servidor. Para la utilizacion de este metodo es necesario tener un certificado de usuario dentro del Cacert de Java. Nota: Este método no requiere intervencion del usuario.

Parameters:
datosToSign - datos a firmar
alias - Nombre del alias utilizado para realizar la firma.
Returns:
El código de firma asignado a este documento firmado.
Throws:
InternalException - Problemas al realizar la firma o al conectar con el servidor.

signByServerWithType

public java.lang.String signByServerWithType(byte[] datosToSign,
                                             java.lang.String alias,
                                             java.lang.String password,
                                             TypeFormatSign type)
                                      throws InternalException
Firma los datos utilizando un certificado almacenado en el servidor. Para la utilizacion de este metodo es necesario tener un certificado de usuario dentro del Cacert de Java. Nota: Este método no requiere intervencion del usuario.

Parameters:
datosToSign - datos a firmar
alias - Nombre del alias utilizado para realizar la firma.
type - Tipo de firma realizada en servidor
Returns:
El código de firma asignado a este documento firmado.
Throws:
InternalException - Problemas al realizar la firma o al conectar con el servidor.

buildInfoQRBarCode

public byte[] buildInfoQRBarCode(java.lang.String codFirma)
                          throws InternalException
Retorna una imagen png con el código de barras y QR code del documento custodiado.

Parameters:
codFirma - código de firma del documento.
Returns:
imagen png
Throws:
InternalException - Problemas al realizar la firma o al conectar con el servidor.

getDocumentoCustodiado

public byte[] getDocumentoCustodiado(java.lang.String codFirma)
                              throws InternalException
Retorna el document originalo que ha sido firmado.

Parameters:
codFirma -
Returns:
byte array del documento.
Throws:
InternalException

sendSignMailByServer

public boolean sendSignMailByServer(java.lang.String subject,
                                    java.lang.String mailTo,
                                    java.lang.String texto,
                                    java.lang.String htmlTexto,
                                    java.lang.String alias,
                                    java.lang.String password)
                             throws InternalException
Permite el envío de emails firmados digitalmente. Necesita tambien un certificado de usuario dentro del Cacerts de Java.

Parameters:
Subject - Asunto del mensaje
mailTo - Destinatario
texto - texto del mensaje a enviar
textoHtml - Texto en formato html del mensaje (optativo)
alias - Alias del certificado utilizado en la firma
password - Password del certificado utilizado en la firma
Returns:
El proceso de firma se ha realizado correctamente.
Throws:
java.rmi.RemoteException - Problemas al enviar el email firmado.
InternalException

getXMLDocument

public java.lang.String getXMLDocument(java.lang.String codFirma)
                                throws InternalException
Devuelve un XMLSignature asociado al idenficidador de firma indicado.

Parameters:
codFirma -
Returns:
String con el documento en XML.
Throws:
InternalException

checkOrignalDocumentSigned

public FirmaInfoViafirma checkOrignalDocumentSigned(byte[] originalData,
                                                    java.lang.String id)
                                             throws InternalException
Chequea la validez del documento original indicado. Los datos deben corresponder a los datos que inicialmente se enviaron para su firma a la plataforma, Viafirma en primer lugar comprueba que el hash de los bytes indicados coinciden con el hash del documento referenciado que ha sido custodiado, y que a su vez el documento custodiado es válido. En el caso de que el documento sea un XAdes, comprueba que el documento XML ( que ya contiene la firma ) es válido.

Parameters:
originalData -
id -
Returns:
FirmaInfoViafirma
Throws:
InternalException
java.rmi.RemoteException

checkDocumentSigned

public FirmaInfoViafirma checkDocumentSigned(byte[] originalData,
                                             java.lang.String id)
                                      throws InternalException
Chequea la validez del documento. Los datos deben corresponder a los datos que inicialmente se enviaron para su firma a la plataforma, Viafirma en primer lugar comprueba que el hash de los bytes indicados coinciden con el hash del documento referenciado que ha sido custodiado, y que a su vez el documento custodiado es válido. En el caso de que el documento sea un XAdes, comprueba que el documento XML ( que ya contiene la firma ) es válido.

Parameters:
originalData -
id -
Returns:
Throws:
InternalException
java.rmi.RemoteException

getRemoteObject

public FirmaClienteRMI getRemoteObject()

getTamanyoMaximoDocumento

public long getTamanyoMaximoDocumento()
Get del tamaño maximo del archivo para poder controlarlo desde el controler



Copyright © 2007-2008 Félix García Borrego - Viavansi. All Rights Reserved.