public IRI getResolvedBaseUri() { return internal.getResolvedBaseUri(); }
public IRI getResolvedBaseUri() { return internal.getResolvedBaseUri(); }
private static boolean isSameAsParentBase(Element element) { IRI parentbase = null; if (element.getParentElement() != null) { parentbase = element instanceof Document ? ((Document)element).getBaseUri() : ((Element)element) .getResolvedBaseUri(); } IRI base = element.getResolvedBaseUri(); if (parentbase == null && base != null) { return false; } if (parentbase == null && base == null) { return true; } return parentbase.equals(element.getResolvedBaseUri()); }
private boolean _verify(Element element, SignatureOptions options) throws XMLSignatureException, XMLSecurityException { boolean answer = false; org.w3c.dom.Element dom = fomToDom((Element)element, options); NodeList children = dom.getChildNodes(); for (int n = 0; n < children.getLength(); n++) { Node node = children.item(n); if (node.getNodeType() == Node.ELEMENT_NODE) { org.w3c.dom.Element el = (org.w3c.dom.Element)node; if (Constants.DSIG_NS.equals(el.getNamespaceURI()) && Constants.LN_SIGNATURE.equals(el.getLocalName())) { IRI baseUri = element.getResolvedBaseUri(); XMLSignature sig = new XMLSignature(el, (baseUri != null) ? baseUri.toString() : ""); answer = is_valid_signature(sig, options); } } } return answer; }
public <T extends Element> KeyInfo getSignatureKeyInfo(T element, SignatureOptions options) throws SecurityException { KeyInfo ki = null; org.w3c.dom.Element dom = fomToDom((Element)element, options); NodeList children = dom.getChildNodes(); for (int n = 0; n < children.getLength(); n++) { try { Node node = children.item(n); if (node.getNodeType() == Node.ELEMENT_NODE) { org.w3c.dom.Element el = (org.w3c.dom.Element)node; if (Constants.DSIG_NS.equals(el.getNamespaceURI()) && Constants.LN_SIGNATURE.equals(el .getLocalName())) { IRI baseUri = element.getResolvedBaseUri(); XMLSignature sig = new XMLSignature(el, (baseUri != null) ? baseUri.toString() : ""); ki = sig.getKeyInfo(); } } } catch (Exception e) { } } return ki; }
@SuppressWarnings("unchecked") public <T extends Element> T removeInvalidSignatures(T element, SignatureOptions options) throws SecurityException { List<org.w3c.dom.Element> remove = new ArrayList<org.w3c.dom.Element>(); org.w3c.dom.Element dom = fomToDom((Element)element, options); NodeList children = dom.getChildNodes(); for (int n = 0; n < children.getLength(); n++) { try { Node node = children.item(n); if (node.getNodeType() == Node.ELEMENT_NODE) { org.w3c.dom.Element el = (org.w3c.dom.Element)node; if (Constants.DSIG_NS.equals(el.getNamespaceURI()) && Constants.LN_SIGNATURE.equals(el .getLocalName())) { IRI baseUri = element.getResolvedBaseUri(); XMLSignature sig = new XMLSignature(el, (baseUri != null) ? baseUri.toString() : ""); if (!is_valid_signature(sig, options)) { remove.add(el); } } } } catch (Exception e) { } } for (org.w3c.dom.Element el : remove) dom.removeChild(el); return (T)domToFom(dom, options); }
private <T extends Element> X509Certificate[] _getcerts(T element, SignatureOptions options) throws XMLSignatureException, XMLSecurityException { List<X509Certificate> certs = new ArrayList<X509Certificate>(); org.w3c.dom.Element dom = fomToDom((Element)element, options); NodeList children = dom.getChildNodes(); for (int n = 0; n < children.getLength(); n++) { try { Node node = children.item(n); if (node.getNodeType() == Node.ELEMENT_NODE) { org.w3c.dom.Element el = (org.w3c.dom.Element)node; if (Constants.DSIG_NS.equals(el.getNamespaceURI()) && Constants.LN_SIGNATURE.equals(el .getLocalName())) { IRI baseUri = element.getResolvedBaseUri(); XMLSignature sig = new XMLSignature(el, (baseUri != null) ? baseUri.toString() : ""); if (is_valid_signature(sig, options)) { KeyInfo ki = sig.getKeyInfo(); if (ki != null) { X509Certificate cert = ki.getX509Certificate(); if (cert != null) certs.add(cert); } } } } } catch (Exception e) { } } return certs.toArray(new X509Certificate[certs.size()]); }
public IRI getResolvedBaseUri() { IRI baseUri = null; IRI uri = _getUriValue(getAttributeValue(BASE)); if (IRIHelper.isJavascriptUri(uri) || IRIHelper.isMailtoUri(uri)) { uri = null; } if (parent instanceof Element) baseUri = ((Element)parent).getResolvedBaseUri(); else if (parent instanceof Document) baseUri = ((Document)parent).getBaseUri(); if (uri != null && baseUri != null) { uri = baseUri.resolve(uri); } else if (uri == null) { uri = baseUri; } return uri; }
jstream.writeField("xml:base", child.getResolvedBaseUri()); writeLanguageFields(child, jstream); for (QName attr : attributes) { if (val != null && ("href".equalsIgnoreCase(name) || "src".equalsIgnoreCase(name) || "action" .equalsIgnoreCase(name))) { IRI base = child.getResolvedBaseUri(); if (base != null) val = base.resolve(val).toASCIIString();
@SuppressWarnings("unchecked") private <T extends Element> T _sign(T element, SignatureOptions options) throws XMLSecurityException { element.setBaseUri(element.getResolvedBaseUri()); org.w3c.dom.Element dom = fomToDom((Element)element.clone(), options); org.w3c.dom.Document domdoc = dom.getOwnerDocument(); X509Certificate cert = options.getCertificate(); PublicKey pkey = options.getPublicKey(); IRI baseUri = element.getResolvedBaseUri(); XMLSignature sig = new XMLSignature(domdoc, (baseUri != null) ? baseUri.toString() : "", options.getSigningAlgorithm());
writeLanguageFields(element, jstream); if (!isSameAsParentBase(element)) { jstream.writeField("xml:base", element.getResolvedBaseUri()); jstream.writeField("xml:base", element.getResolvedBaseUri()); writeLanguageFields(content, jstream); jstream.writeField("src", content.getResolvedSrc()); writeLanguageFields(element, jstream); if (!isSameAsParentBase(element)) jstream.writeField("xml:base", element.getResolvedBaseUri()); Categories categories = (Categories)element; jstream.writeField("fixed", categories.isFixed() ? "true" : "false"); writeLanguageFields(element, jstream); if (!isSameAsParentBase(element)) jstream.writeField("xml:base", element.getResolvedBaseUri()); Category category = (Category)element; jstream.writeField("term", category.getTerm()); writeLanguageFields(element, jstream); if (!isSameAsParentBase(element)) jstream.writeField("xml:base", element.getResolvedBaseUri()); Collection collection = (Collection)element; jstream.writeField("href", collection.getResolvedHref()); writeLanguageFields(element, jstream); if (!isSameAsParentBase(element)) { jstream.writeField("xml:base", element.getResolvedBaseUri());