Changeset aa89290 in murachi
- Timestamp:
- Jun 30, 2015, 10:41:00 AM (9 years ago)
- Branches:
- master
- Children:
- ce3da18
- Parents:
- 6bb4976
- Location:
- murachi
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
murachi/pom.xml
rb3b099f raa89290 105 105 </dependency> 106 106 107 <dependency> 108 <groupId>org.apache.tika</groupId> 109 <artifactId>tika-core</artifactId> 110 <version>1.9</version> 111 </dependency> 107 112 108 113 </dependencies> -
murachi/src/main/java/ve/gob/cenditel/murachi/MurachiRESTWS.java
r6bb4976 raa89290 115 115 116 116 import org.apache.log4j.Logger; 117 import org.apache.tika.Tika; 117 118 118 119 @Path("/archivos") … … 130 131 private static final String RSA_DIGEST_ENCRYPTION_ALGORITHM = "RSA"; 131 132 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 132 139 // para reportes de advertencias de BDOC 133 140 private static boolean bdocWarnings = true; … … 360 367 * @apiDescription Carga un archivo a través de un formulario y retorna un json con la información de la firma. 361 368 * 369 * @apiSuccess {String} fileId Identificador único del archivo en el servidor 362 370 * @apiSuccess {Boolean} fileExist El archivo se cargó exitosamente en el servidor. 363 371 * @apiSuccess {String} error Extension not supported. En caso de que el archivo sea diferente de PDF y BDOC. … … 588 596 JSONObject jsonObject = new JSONObject(); 589 597 598 jsonObject.put("fileId", idFile); 599 590 600 if (!tmpFile.exists()) { 591 601 System.out.println("File : " + file + " does not exists."); … … 597 607 jsonObject.put("fileExist", "true"); 598 608 599 String mime = getMimeType(file); 609 //String mime = getMimeType(file); 610 String mime = getMimeTypeWithTika(file); 611 600 612 System.out.println("mimetype : " + mime); 601 613 … … 633 645 logger.debug("verifySignaturesInPdf: "+ pdfFile); 634 646 647 java.nio.file.Path path = Paths.get(pdfFile); 648 String idFile = path.getFileName().toString(); 649 650 635 651 JSONObject jsonSignatures = new JSONObject(); 636 652 JSONArray jsonArray = new JSONArray(); … … 644 660 ArrayList<String> names = af.getSignatureNames(); 645 661 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"); 647 666 }else{ 648 667 649 668 jsonSignatures.put("fileExist", "true"); 669 jsonSignatures.put("fileId", idFile); 650 670 jsonSignatures.put("numberOfSignatures", names.size()); 671 jsonSignatures.put("mimeType", "application/pdf"); 651 672 652 673 HashMap<String, String> signatureInformation; … … 1514 1535 private JSONObject verifySignaturesInBdoc(String bdocFile) { 1515 1536 1537 System.out.println("verifySignaturesInBdoc(String bdocFile)"); 1516 1538 JSONObject jsonSignatures = new JSONObject(); 1517 1539 … … 1519 1541 JSONArray jsonContainerValidationExceptionArray = new JSONArray(); 1520 1542 1543 java.nio.file.Path path = Paths.get(bdocFile); 1544 String idFile = path.getFileName().toString(); 1545 1546 1521 1547 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 1524 1564 1525 1565 int numberOfSignatures = container.getSignatures().size(); 1526 1566 if (numberOfSignatures == 0){ 1527 1567 jsonSignatures.put("signatureNumber", "0"); 1568 System.out.println("signatureNumber: 0"); 1528 1569 }else{ 1529 1570 jsonSignatures.put("fileExist", "true"); 1571 System.out.println("fileExist: true"); 1572 1573 jsonSignatures.put("fileId", idFile); 1574 jsonSignatures.put("mimeType", "application/pdf"); 1530 1575 1531 1576 // informacion de archivos dentro del contenedor … … 2276 2321 Security.addProvider(new BouncyCastleProvider()); 2277 2322 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"); 2282 2328 2283 2329 Container container = Container.create(configuration); … … 2289 2335 container.setSignatureParameters(signatureParameters); 2290 2336 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())); 2293 2339 // Container container = Container.open("util/faulty/bdoc21-bad-nonce-content.bdoc"); 2294 2340 container.save("/tmp/signed.bdoc"); … … 2572 2618 return result; 2573 2619 } 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 2574 2652 2575 2653 /**
Note: See TracChangeset
for help on using the changeset viewer.