Changeset aa89290 in murachi


Ignore:
Timestamp:
Jun 30, 2015, 10:41:00 AM (9 years ago)
Author:
antonioaraujob <aaraujo@…>
Branches:
master
Children:
ce3da18
Parents:
6bb4976
Message:

Agregados los archivos de configuración digidoc4j.yaml y venezuela-tsl.xml al directorio de recursos.

Location:
murachi
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • murachi/pom.xml

    rb3b099f raa89290  
    105105                </dependency>
    106106               
     107                <dependency>
     108                <groupId>org.apache.tika</groupId>
     109                <artifactId>tika-core</artifactId>
     110                <version>1.9</version>
     111                </dependency>
    107112               
    108113        </dependencies>
  • murachi/src/main/java/ve/gob/cenditel/murachi/MurachiRESTWS.java

    r6bb4976 raa89290  
    115115
    116116import org.apache.log4j.Logger;
     117import org.apache.tika.Tika;
    117118
    118119@Path("/archivos")
     
    130131        private static final String RSA_DIGEST_ENCRYPTION_ALGORITHM = "RSA";
    131132       
     133        private final String DIGIDOC4J_CONFIGURATION = getAbsolutePathOfResource("digidoc4j.yaml");
     134       
     135        private final String DIGIDOC4J_TSL_LOCATION = "file://" + getAbsolutePathOfResource("venezuela-tsl.xml");
     136       
     137
     138
    132139        // para reportes de advertencias de BDOC
    133140        private static boolean bdocWarnings = true;
     
    360367         * @apiDescription Carga un archivo a través de un formulario y retorna un json con la información de la firma.
    361368         *
     369         * @apiSuccess {String} fileId Identificador único del archivo en el servidor
    362370         * @apiSuccess {Boolean} fileExist El archivo se cargó exitosamente en el servidor.
    363371         * @apiSuccess {String} error Extension not supported. En caso de que el archivo sea diferente de PDF y BDOC.
     
    588596                JSONObject jsonObject = new JSONObject();
    589597               
     598                jsonObject.put("fileId", idFile);
     599               
    590600                if (!tmpFile.exists()) {
    591601                        System.out.println("File : " + file + " does not exists.");
     
    597607                        jsonObject.put("fileExist", "true");
    598608                       
    599                         String mime = getMimeType(file);
     609                        //String mime = getMimeType(file);
     610                        String mime = getMimeTypeWithTika(file);
     611                                               
    600612                        System.out.println("mimetype : " + mime);
    601613                       
     
    633645                logger.debug("verifySignaturesInPdf: "+ pdfFile);
    634646               
     647                java.nio.file.Path path = Paths.get(pdfFile);
     648                String idFile = path.getFileName().toString();
     649               
     650               
    635651                JSONObject jsonSignatures = new JSONObject();
    636652                JSONArray jsonArray = new JSONArray();
     
    644660                        ArrayList<String> names = af.getSignatureNames();
    645661                        if (names.size() <= 0) {
    646                                 jsonSignatures.put("signatureNumber", "0");
     662                                jsonSignatures.put("fileExist", "true");
     663                                jsonSignatures.put("fileId", idFile);
     664                                jsonSignatures.put("numberOfSignatures", "0");
     665                                jsonSignatures.put("mimeType", "application/pdf");
    647666                        }else{
    648667                               
    649668                                jsonSignatures.put("fileExist", "true");
     669                                jsonSignatures.put("fileId", idFile);
    650670                                jsonSignatures.put("numberOfSignatures", names.size());
     671                                jsonSignatures.put("mimeType", "application/pdf");
    651672                                                               
    652673                                HashMap<String, String> signatureInformation;
     
    15141535        private JSONObject verifySignaturesInBdoc(String bdocFile) {
    15151536       
     1537                System.out.println("verifySignaturesInBdoc(String bdocFile)");
    15161538                JSONObject jsonSignatures = new JSONObject();
    15171539
     
    15191541                JSONArray jsonContainerValidationExceptionArray = new JSONArray();
    15201542               
     1543                java.nio.file.Path path = Paths.get(bdocFile);
     1544                String idFile = path.getFileName().toString();
     1545               
     1546               
    15211547                Security.addProvider(new BouncyCastleProvider());
    1522                 Container container;
    1523                 container = Container.open(bdocFile);
     1548                Container container = null;
     1549               
     1550                Configuration configuration = new Configuration(Configuration.Mode.PROD);
     1551               
     1552                configuration.loadConfiguration(DIGIDOC4J_CONFIGURATION);
     1553               
     1554                configuration.setTslLocation(DIGIDOC4J_TSL_LOCATION);
     1555                try
     1556                {
     1557                        container = Container.open(bdocFile, configuration);
     1558                } catch(DigiDoc4JException e)
     1559                {
     1560                        jsonSignatures.put("error", "File is not a valid BDOC container");
     1561                        return jsonSignatures;
     1562                }
     1563               
    15241564               
    15251565                int numberOfSignatures = container.getSignatures().size();
    15261566                if (numberOfSignatures == 0){
    15271567                        jsonSignatures.put("signatureNumber", "0");
     1568                        System.out.println("signatureNumber: 0");
    15281569                }else{
    15291570                        jsonSignatures.put("fileExist", "true");
     1571                        System.out.println("fileExist: true");
     1572                       
     1573                        jsonSignatures.put("fileId", idFile);
     1574                        jsonSignatures.put("mimeType", "application/pdf");
    15301575                       
    15311576                        // informacion de archivos dentro del contenedor
     
    22762321                Security.addProvider(new BouncyCastleProvider());
    22772322               
    2278                 Configuration configuration = new Configuration(Configuration.Mode.TEST);
    2279                
    2280                 configuration.loadConfiguration("/home/aaraujo/desarrollo/2015/workspace-luna/JAXRS-Murachi/WebContent/WEB-INF/lib/digidoc4j.yaml");
    2281                 configuration.setTslLocation("http://localhost/trusted-test-mp.xml");
     2323                Configuration configuration = new Configuration(Configuration.Mode.PROD);
     2324               
     2325                configuration.loadConfiguration("/tmp/digidoc4j.yaml");
     2326                //configuration.setTslLocation("http://localhost/trusted-test-mp.xml");
     2327                configuration.setTslLocation("file:///tmp/venezuela-tsl.xml");
    22822328               
    22832329            Container container = Container.create(configuration);
     
    22892335            container.setSignatureParameters(signatureParameters);
    22902336            container.setSignatureProfile(SignatureProfile.B_BES);
    2291             container.addDataFile("/tmp/01311213-5756-4707-a73d-6d42b09b26fd", "text/plain");
    2292             container.sign(new PKCS12Signer("/tmp/JuanHilario.p12", "123456".toCharArray()));
     2337            container.addDataFile("/tmp/salida.txt", "text/plain");
     2338            container.sign(new PKCS12Signer("/tmp/tibisay.p12", "123456".toCharArray()));
    22932339//          Container container = Container.open("util/faulty/bdoc21-bad-nonce-content.bdoc");
    22942340            container.save("/tmp/signed.bdoc");
     
    25722618                return result;           
    25732619        }
     2620       
     2621        /**
     2622         * Retorna el mimeType del archivo pasado como argumento
     2623         * @param absolutFilePath ruta absoluta del archivo
     2624         * @return mimeType del archivo pasado como argumento
     2625         */
     2626        public String getMimeTypeWithTika(String absolutFilePath) {
     2627                               
     2628                String mimeType = "";           
     2629               
     2630                Tika tika = new Tika();
     2631                File file = new File(absolutFilePath);
     2632                try {
     2633                        mimeType = tika.detect(file);
     2634                } catch (IOException e1) {
     2635                        // TODO Auto-generated catch block
     2636                        e1.printStackTrace();
     2637                }
     2638               
     2639                /*
     2640                java.nio.file.Path source = Paths.get(absolutFilePath);
     2641                try {
     2642                        result = Files.probeContentType(source);                       
     2643                        System.out.println(result);
     2644                } catch (IOException e) {
     2645                        // TODO Auto-generated catch block
     2646                        e.printStackTrace();
     2647                }
     2648                */             
     2649                return mimeType;                 
     2650        }
     2651       
    25742652       
    25752653        /**
Note: See TracChangeset for help on using the changeset viewer.