Java tutorial
/** * LICENCIA LGPL: * * Esta librera es Software Libre; Usted puede redistribuirlo y/o modificarlo * bajo los trminos de la GNU Lesser General Public License (LGPL) * tal y como ha sido publicada por la Free Software Foundation; o * bien la versin 2.1 de la Licencia, o (a su eleccin) cualquier versin posterior. * * Esta librera se distribuye con la esperanza de que sea til, pero SIN NINGUNA * GARANT?A; tampoco las implcitas garantas de MERCANTILIDAD o ADECUACIN A UN * PROPSITO PARTICULAR. Consulte la GNU Lesser General Public License (LGPL) para ms * detalles * * Usted debe recibir una copia de la GNU Lesser General Public License (LGPL) * junto con esta librera; si no es as, escriba a la Free Software Foundation Inc. * 51 Franklin Street, 5 Piso, Boston, MA 02110-1301, USA o consulte * <http://www.gnu.org/licenses/>. * * Copyright 2008 Ministerio de Industria, Turismo y Comercio * */ package es.mityc.firmaJava.policy; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.MissingResourceException; import java.util.ResourceBundle; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import es.mityc.firmaJava.libreria.xades.elementos.DigestAlgAndValueType; import es.mityc.firmaJava.libreria.xades.elementos.SigPolicyHash; /** * Esta clase centraliza la configuracin de funcionamiento de un validador de poltica de factura-e * * @author Ministerio de Industria, Turismo y Comercio * @version 1.0 */ public class ConfigFacturae { private static Log logger = LogFactory.getLog(ConfigFacturae.class); /** Identificador de la policy que se espera encontrar en la firma */ public URI policyIdXades = null; /** Cadena de identificacin de la policy */ public String policyIdValidador = null; /** Cadena de descripcin de la policy */ public String policyDescription = null; /** Hash's que se consideran vlidos de la policy */ public ArrayList<DigestAlgAndValueType> huellas = null; /** Nmero de digest que utilizar para el escritor de policy */ public int policyWriterId = -1; public ConfigFacturae(ResourceBundle props, String prefix) throws ConfigFacturaeException { String prep = ""; if ((prefix != null) && (!"".equals(prefix.trim()))) prep = prefix + "."; // carga los datos de identidad try { policyIdXades = new URI(props.getString(prep + ConstantesFacturaePolicy.PROPNAME_POLICY_ID)); policyIdValidador = props.getString(prep + ConstantesFacturaePolicy.PROPNAME_POLICY_ID_VALIDADOR); } catch (MissingResourceException ex) { logger.fatal("Error en la carga de la configuracin del validador de facturae"); throw new ConfigFacturaeException("Error en la configuracin", ex); } catch (URISyntaxException ex) { logger.fatal("Identificador de la policy indicada invlido"); throw new ConfigFacturaeException("Error en la configuracin", ex); } // carga la descripcion de la policy try { policyDescription = props.getString(prep + ConstantesFacturaePolicy.PROPNAME_POLICY_ID_VALIDADOR); } catch (MissingResourceException ex) { if (logger.isTraceEnabled()) logger.trace("No hay descripcin para esta policy: " + prep); } // Carga la huellas huellas = new ArrayList<DigestAlgAndValueType>(); int i = 0; while (true) { try { huellas.add(new SigPolicyHash(null, props.getString(prep + ConstantesFacturaePolicy.PROPNAME_HASH_ID + i), props.getString(prep + ConstantesFacturaePolicy.PROPNAME_HASH_VALUE + i))); i++; } catch (MissingResourceException ex) { break; } } // carga el nmero de hash que se utilizar en el escritor try { policyWriterId = Integer .parseInt(props.getString(prep + ConstantesFacturaePolicy.PROPNAME_WRITER_HASH)); if (policyWriterId >= huellas.size()) { policyWriterId = -1; logger.error("Error al indicar nmero de hash a escribir"); } } catch (MissingResourceException ex) { if (logger.isTraceEnabled()) logger.trace("No hay indicado hash para el escritor: " + prep); } catch (NumberFormatException ex) { logger.error("Error al indicar nmero de hash a escribir", ex); } } }