Examples of RelationshipTransformParameterSpec


Examples of org.apache.poi.poifs.crypt.dsig.services.RelationshipTransformService.RelationshipTransformParameterSpec

                prc.parseRelationshipsPart(pp);
            } catch (InvalidFormatException e) {
                throw new XMLSignatureException("Invalid relationship descriptor: "+pp.getPartName().getName(), e);
            }
           
            RelationshipTransformParameterSpec parameterSpec = new RelationshipTransformParameterSpec();
            for (PackageRelationship relationship : prc) {
                String relationshipType = relationship.getRelationshipType();
               
                /*
                 * ECMA-376 Part 2 - 3rd edition
                 * 13.2.4.16 Manifest Element
                 * "The producer shall not create a Manifest element that references any data outside of the package."
                 */
                if (TargetMode.EXTERNAL == relationship.getTargetMode()) {
                    continue;
                }

                if (!isSignedRelationship(relationshipType)) continue;

                parameterSpec.addRelationshipReference(relationship.getId());

                // TODO: find a better way ...
                String partName = baseUri + relationship.getTargetURI().toString();
                try {
                    partName = new URI(partName).normalize().getPath().replace('\\', '/');
                    LOG.log(POILogger.DEBUG, "part name: " + partName);
                } catch (URISyntaxException e) {
                    throw new XMLSignatureException(e);
                }
               
                String contentType;
                try {
                    PackagePartName relName = PackagingURIHelper.createPartName(partName);
                    PackagePart pp2 = ooxml.getPart(relName);
                    contentType = pp2.getContentType();
                } catch (InvalidFormatException e) {
                    throw new XMLSignatureException(e);
                }
               
                if (relationshipType.endsWith("customXml")
                    && !(contentType.equals("inkml+xml") || contentType.equals("text/xml"))) {
                    LOG.log(POILogger.DEBUG, "skipping customXml with content type: " + contentType);
                    continue;
                }
               
                if (!digestedPartNames.contains(partName)) {
                    // We only digest a part once.
                    String uri = partName + "?ContentType=" + contentType;
                    Reference reference = newReference(uri, null, null, null, null);
                    manifestReferences.add(reference);
                    digestedPartNames.add(partName);
                }
            }
           
            if (parameterSpec.hasSourceIds()) {
                List<Transform> transforms = new ArrayList<Transform>();
                transforms.add(newTransform(RelationshipTransformService.TRANSFORM_URI, parameterSpec));
                transforms.add(newTransform(CanonicalizationMethod.INCLUSIVE));
                String uri = pp.getPartName().getName()
                    + "?ContentType=application/vnd.openxmlformats-package.relationships+xml";
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.