Changeset 90b2952 in murachi


Ignore:
Timestamp:
May 13, 2015, 1:12:34 PM (9 years ago)
Author:
antonioaraujob <aaraujo@…>
Branches:
master
Children:
0eae502
Parents:
81c864a
Message:

Agregados archivos correspondientes a certificados de autoridades de certificación. Cambios en MurachiRESTWS para obtener archivos de certificados a partir de recursos.

Location:
murachi/src/main
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • murachi/src/main/java/ve/gob/cenditel/murachi/MurachiRESTWS.java

    r81c864a r90b2952  
    1515import java.io.ObjectOutputStream;
    1616import java.io.OutputStream;
     17import java.net.URISyntaxException;
     18import java.net.URL;
    1719import java.nio.file.Files;
    1820import java.nio.file.Paths;
     
    111113
    112114import ve.gob.cenditel.murachi.MurachiException;
     115
    113116import org.apache.log4j.Logger;
    114117
     
    118121        final static Logger logger = Logger.getLogger(MurachiRESTWS.class);
    119122       
    120 
    121123        private static final String API_VERSION = "0.1.0";
    122124       
     
    126128       
    127129        private static final String RSA_DIGEST_ENCRYPTION_ALGORITHM = "RSA";
    128 
    129         public static final String ACRAIZ = "/tmp/CERTIFICADO-RAIZ-SHA384.crt";
    130         public static final String PSCFII = "/tmp/PSCFII-SHA256.crt";   
    131         public static final String GIDSI = "/tmp/gidsi.crt";
    132        
    133        
    134         private static final String ANSI_RED = "^[[31m";
    135         private static final String ANSI_RESET = "^[[0m";
    136130       
    137131        // para reportes de advertencias de BDOC
     
    142136
    143137        /**
     138         * Retorna la ruta absoluta de un archivo recurso
     139         * @param resource cadena con el nombre del archivo
     140         * @return ruta absoluta de un archivo recurso
     141         */
     142        String getAbsolutePathOfResource(String resource) {
     143                ClassLoader classLoader = getClass().getClassLoader();
     144                File file = new File(classLoader.getResource(resource).getFile());
     145                logger.debug("archivo recurso solicitado: "+ resource +" path abosulto: " + file.getAbsolutePath());
     146                return file.getAbsolutePath();         
     147        }
     148       
     149       
     150        /**
    144151         * Retorna la version del api del servicio
    145152         * @return version del api del servicio
     153         * @throws URISyntaxException
    146154         */
    147155        @Path("/version")
     
    149157        @Produces(MediaType.TEXT_HTML)
    150158        public String returnVersion() {
    151                 logger.info("/version: Murachi Version: " + API_VERSION);
     159                logger.info("/version: Murachi Version: " + API_VERSION);               
    152160                return "<p>Murachi Version: " + API_VERSION + "</p>";
    153161        }
     
    487495                                HashMap<String, String> signatureInformation;
    488496                               
     497                                // inicializar el keystore para verificacion
     498                                KeyStore ks = setupKeyStore();
     499                               
    489500                                for (String name : names) {
    490501                                        System.out.println("===== " + name + " =====");
    491                                         signatureInformation = verifySignature(af, name);
     502                                        signatureInformation = verifySignature(af, name, ks);
    492503                                        System.out.println("signatureInformation.size " + signatureInformation.size());
    493504                                       
     
    523534         * @throws MurachiException
    524535         */
    525         public HashMap<String, String> verifySignature(AcroFields fields, String name)
     536        public HashMap<String, String> verifySignature(AcroFields fields, String name, KeyStore ks)
    526537                        throws GeneralSecurityException, IOException, MurachiException {
    527538                       
     
    610621               
    611622               
    612                 KeyStore ks = setupKeyStore();
     623                //KeyStore ks = setupKeyStore();
    613624               
    614625                Certificate[] certs = pkcs7.getSignCertificateChain();
     
    667678                        ks.load(null, null);
    668679                        CertificateFactory cf = CertificateFactory.getInstance("X.509");
    669                         ks.setCertificateEntry("acraiz",cf.generateCertificate(new FileInputStream(ACRAIZ)));
    670                         ks.setCertificateEntry("pscfii",cf.generateCertificate(new FileInputStream(PSCFII)));
    671                         ks.setCertificateEntry("gidsi",cf.generateCertificate(new FileInputStream(GIDSI)));
    672                        
    673                        
     680                        ks.setCertificateEntry("acraiz",
     681                                        cf.generateCertificate(new FileInputStream(getAbsolutePathOfResource("CERTIFICADO-RAIZ-SHA384.crt"))));
     682                        ks.setCertificateEntry("pscfii",
     683                                        cf.generateCertificate(new FileInputStream(getAbsolutePathOfResource("PSCFII-SHA256.crt"))));
     684                        ks.setCertificateEntry("gidsi",
     685                                        cf.generateCertificate(new FileInputStream(getAbsolutePathOfResource("gidsi.crt"))));
     686                                               
    674687                } catch (KeyStoreException e) {
    675688                        logger.error("setupKeyStore() ocurrio una excepcion", e);
     
    12861299               
    12871300                if (signatureValidationResult.size() > 0) {
    1288                         System.out.println(ANSI_RED + "Signature " + signature.getId() + " is not valid" + ANSI_RESET);
     1301                        System.out.println("Signature " + signature.getId() + " is not valid");
    12891302                signatureMap.put("isValid", Boolean.toString(false));
    12901303                int counter = 1;
     
    13761389                System.out.println("Signature " + signature.getId() + " is valid");
    13771390              } else {
    1378                 System.out.println(ANSI_RED + "Signature " + signature.getId() + " is not valid" + ANSI_RESET);
     1391                System.out.println("Signature " + signature.getId() + " is not valid");
    13791392                for (DigiDoc4JException exception : signatureValidationResult) {
    13801393                  System.out.println((isDDoc ? "        " : "   Error: ")
Note: See TracChangeset for help on using the changeset viewer.