@Override public Data dereference(URIReference arg0, XMLCryptoContext arg1) throws URIReferenceException { String partPath = arg0.getURI().toString(); System.out.println(partPath + " in package ? " + odfDoc.getPackage().contains(partPath)); // see if our document contains this part, if not dereference using // default dereferencer if (!odfDoc.getPackage().contains(partPath)) { return defaultURIDereferencer.dereference(arg0, arg1); } // return part content as octet stream data InputStream is = odfDoc.getPackage().getInputStream(partPath); OctetStreamData retData = new OctetStreamData(is); return retData; }
public Data dereference(final URIReference ref, XMLCryptoContext ctx) throws URIReferenceException { String uri = ref.getURI(); if (uri.equals(STYLESHEET) || uri.equals(STYLESHEET_B64)) { try { FileInputStream fis = new FileInputStream(new File (DATA_DIR, uri.substring(uri.lastIndexOf('/')))); return new OctetStreamData(fis,ref.getURI(),ref.getType()); } catch (Exception e) { throw new URIReferenceException(e); } } // fallback on builtin deref return defaultUd.dereference(ref, ctx); }
@Override public Data dereference(final URIReference ref, XMLCryptoContext ctx) throws URIReferenceException { // return static content return new OctetStreamData(new ByteArrayInputStream( "<test>test</test>".getBytes()), ref.getURI(), ref.getType()); }
public Data dereference(final URIReference ref, XMLCryptoContext ctx) throws URIReferenceException { dereferenced = true; // fallback return ud.dereference(ref, ctx); }
public Data dereference(URIReference ref, XMLCryptoContext ctxt) { return new NodeSetData() { public Iterator<Node> iterator() { return Collections.singletonList(data).iterator(); } }; }
public Data dereference(URIReference uriReference, XMLCryptoContext context) throws URIReferenceException { String uri = uriReference.getURI(); if (uriMap.containsKey(uri)) { try { FileInputStream fis = new FileInputStream(uriMap.get(uri)); return new OctetStreamData( fis, uriReference.getURI(), uriReference.getType()); } catch (Exception e) { throw new URIReferenceException(e); } } // fallback on builtin deref return ud.dereference(uriReference, context); }
public Data dereference(URIReference uriReference, XMLCryptoContext context) throws URIReferenceException { if (uriReference == null) { throw new NullPointerException("Parameter 'uriReference' cannot be null."); } if (context == null) { throw new NullPointerException("Parameter 'context' can notbe null."); } if (!(uriReference instanceof DOMURIReference && context instanceof DOMCryptoContext)) { throw new IllegalArgumentException(String.format("This %s implementation supports the DOM XML mechanism only.", URIDereferencer.class.getName())); } String uriString = uriReference.getURI(); if (uriString == null) { throw new URIReferenceException("Cannot resolve a URI of value 'null'."); } if (uriString != null && ((uriString.length() != 0 && uriString.charAt(0) == '#') || uriString.isEmpty())) { // same document uri XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM"); return fac.getURIDereferencer().dereference(uriReference, context); } throw new URIReferenceException(String.format("URI reference %s not supported", uriString)); }
public Data dereference(URIReference uriReference, XMLCryptoContext xmlCryptoContext) throws URIReferenceException { String uri = uriReference.getURI(); byte[] data = this.resources.get(uri); if (null == data) { return null; } return new OctetStreamData(new ByteArrayInputStream(data)); }
@Override public Data dereference(URIReference uriReference, XMLCryptoContext context) throws URIReferenceException { try { if (uriReference.getURI().startsWith("cid:")) { DataSource ds = null; for (EbMSDataSource dataSource : dataSources) if (uriReference.getURI().substring("cid:".length()).equals(dataSource.getContentId())) { ds = dataSource; break; } if (ds == null) throw new URIReferenceException("Reference URI = " + uriReference.getURI() + " does not exist!"); XMLSignatureInput in = new XMLSignatureInput(ds.getInputStream()); if (in.isOctetStream()) return new ApacheOctetStreamData(in); else return new ApacheNodeSetData(in); } else return DOMURIDereferencer.INSTANCE.dereference(uriReference,context); } catch (Exception e) { throw new URIReferenceException(e); } }
@Override public <Data> SagaInstanceData<Data> findWithData(String sagaType, String sagaId) { SagaInstance sagaInstance = find(sagaType, sagaId); Data sagaData = SagaDataSerde.deserializeSagaData(sagaInstance.getSerializedSagaData()); return new SagaInstanceData<>(sagaInstance, sagaData); }
@Override public Data dereference(XMLCryptoContext context) throws URIReferenceException { if (context == null) { throw new NullPointerException("context cannot be null"); } /* * If URIDereferencer is specified in context; use it, otherwise use * built-in. */ URIDereferencer deref = context.getURIDereferencer(); if (deref == null) { deref = DOMURIDereferencer.INSTANCE; } Data data = deref.dereference(this, context); // pass dereferenced data through Transforms try { for (Transform transform : transforms) { data = transform.transform(data, context); } } catch (Exception e) { throw new URIReferenceException(e); } // guard against RetrievalMethod loops if (data instanceof NodeSetData && Utils.secureValidation(context)) { NodeSetData nsd = (NodeSetData)data; Iterator<?> i = nsd.iterator(); if (i.hasNext()) { Node root = (Node)i.next(); if ("RetrievalMethod".equals(root.getLocalName())) { throw new URIReferenceException( "It is forbidden to have one RetrievalMethod point " + "to another when secure validation is enabled"); } } } return data; }
public Data getDereferencedData() { return derefData; }
public Data dereference(URIReference ref, XMLCryptoContext ctxt) { return new OctetStreamData(new ByteArrayInputStream(data)); }