public class XMLUtils
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
FIPS_140_2_MODE_SYSTEM_PROPERTY |
static java.lang.String |
PROPERTY_ALLOW_ALL |
static java.lang.String |
PROPERTY_ALLOW_EXTERNAL_REF |
static java.lang.String |
PROPERTY_ALLOW_RETRIEVAL_METHOD |
static java.lang.String |
PROPERTY_ALLOW_UNVALIDATED_CERT |
static java.lang.String |
PROPERTY_ALLOW_XSLT_TRANSFORM |
static java.lang.String |
PROPERTY_C14N_NS_FILTERED_OUT |
static java.lang.String |
PROPERTY_C14N_PARSER |
static java.lang.String |
PROPERTY_C14N_SPARSE_THRESHOLD |
static java.lang.String |
PROPERTY_DEBUG_VERIFY |
static java.lang.String |
PROPERTY_DISABLE_ID_CACHING |
static java.lang.String |
PROPERTY_MAX_TRANSFORMS |
static java.lang.String |
PROPERTY_USE_EXPLICIT_C14N11 |
static java.lang.String |
PROPERTY_USE_JSR105 |
static java.lang.String |
PROPERTY_USE_JSR106 |
static java.lang.String |
PROPERTY_USE_MTOM |
static java.lang.String |
PROPERTY_USE_OLD_C14N |
Constructor and Description |
---|
XMLUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
addIdAttribute(java.lang.String namespaceURI, java.lang.String attrName)
Sets the namespace in which a given attribute is defined as being of type ID.
|
static java.lang.String |
canonicalize(java.util.Collection nodeSet, boolean withComments)
Applies Canonical XML to the input node-set.
|
static java.lang.String |
canonicalize(org.w3c.dom.Node input, boolean withComments)
Applies Canonical XML to the input sub-tree rooted in the given
Node . |
static java.lang.String |
canonicalize(org.w3c.dom.NodeList input, boolean withComments)
Applies Canonical XML to the input
NodeList . |
static java.lang.String |
collectText(org.w3c.dom.Node node)
Collects all of a node's text-node children into a single string.
|
static void |
computeAncestors(org.w3c.dom.Node node, java.util.ArrayList lastNodeAncestors)
Efficiently computes the ancestors of a given Node.
|
static void |
copyNSPrefix(org.w3c.dom.Element source, org.w3c.dom.Element target)
Propagates the given source element tag name's namespace prefix to the given target element, if both elements have the same namespace URI and the source prefix is not null or empty.
|
static javax.xml.parsers.DocumentBuilder |
createDocBuilder()
Returns a new
javax.xml.parsers.DocumentBuilder instance with the NamespaceAware property set to true . |
static org.w3c.dom.Document |
createDocument()
Returns a new
org.w3c.dom.Document instance. |
static org.w3c.dom.Element |
createElement(org.w3c.dom.Document doc, java.lang.String tag, java.lang.String nsURI, java.lang.String prefix) |
static NamespaceContext |
createNamespaceContext(org.w3c.dom.Node nsContextNode)
Creates a jaxen XPath namespace context containing the prefix mappings in scope for the given node.
|
static javax.xml.transform.Transformer |
createTransformer()
Deprecated.
|
static javax.xml.transform.Transformer |
createTransformer(org.w3c.dom.Node n)
Return a new identity transformer which can transform nodes of type n
|
static javax.xml.transform.Transformer |
createTransformer(org.w3c.dom.Node n, javax.xml.transform.Source s)
Create a transformer for stylesheet s which has to transform nodes of type n
|
static javax.xml.transform.Transformer |
createTransformer(javax.xml.transform.Source s)
Create a transformer for stylesheet s
|
static byte[] |
decodeDEROctets(byte[] der) |
static java.lang.String |
escapeTextNode(java.lang.String text)
Escapes XML text characters - &, < > \r
|
static java.lang.String |
fixURL(java.lang.String urlStr)
Expands a relative URL to an absolute URL using the "file" protocol and the file-system current directory path.
|
static java.lang.String |
fixURL(java.lang.String urlStr, java.lang.String systemId)
Expands a relative URL to an absolute URL using the given document base URL.
|
static java.lang.String |
formatDate(java.util.Date date)
Formats a date as a String in UTC format.
|
static java.lang.String |
formatDateTime(java.util.Date date)
Formats a date and time as a String in UTC format.
|
static java.lang.String |
formatTime(java.util.Date date)
Formats a time as a String in UTC format.
|
static boolean |
getAllowAllFlag() |
static boolean |
getAllowRetrievalMethodFlag() |
static boolean |
getAllowUnvalidatedCertFlag() |
static java.util.Map<java.lang.String,java.lang.String> |
getAncestorNamespaces(org.w3c.dom.Element elem)
get the namespace of all the ancestor elements, includes namespaces of current element too
|
static java.lang.String |
getAttributeValue(org.w3c.dom.Element elem, java.lang.String name) |
static DocumentNavigator |
getDocumentNavigator() |
static org.w3c.dom.Element |
getElementById(org.w3c.dom.Document doc, java.lang.String id)
Resolves an ID attribute value to an element.
|
static boolean |
getExternalRefFlag() |
static org.w3c.dom.Element |
getFirstChildElement(org.w3c.dom.Node node) |
static java.util.ArrayList |
getIdAttributes(java.lang.String namespaceURI)
Returns the list of attributes defined as type ID for the given namespace.
|
static java.util.Map |
getIdAttributesMap()
return a map namespaceURI to IdAttributes list
|
static java.lang.String |
getIdFromURI(java.lang.String uri)
Extracts the ID from a same-document URI.
|
static XMLElement |
getInstance(java.util.Collection nodes, java.lang.String tag, java.lang.String ns)
Creates a new instance of the implementation class for the given tag name, and uses it to wrap the first Element in the input node set with that tag.
|
static XMLElement |
getInstance(org.w3c.dom.Element element)
Creates a new instance of the implementation class for the given Element.
|
static XMLElement |
getInstance(org.w3c.dom.Element element, java.lang.String tag)
Creates a new instance of the implementation class for the given tag name, and uses it to wrap the Element.
|
static XMLElement |
getInstance(org.w3c.dom.Element element, java.lang.String tag, java.lang.String ns)
Creates a new instance of the implementation class for the given tag name, and uses it to wrap the Element.
|
static XMLElement |
getInstance(org.w3c.dom.NodeList nodes, java.lang.String tag, java.lang.String ns)
Creates a new instance of the implementation class for the given tag name, and uses it to wrap the first Element in the input node list with that tag.
|
static int |
getMaxTrans() |
static java.lang.String |
getNamespaceURI(org.w3c.dom.Node node)
Returns the namespace URI that is in scope for the given node's namespace prefix, as per the XPath data model.
|
static org.w3c.dom.Element |
getNextSiblingElement(org.w3c.dom.Node node) |
static java.lang.String |
getNodeTypeName(org.w3c.dom.Node node)
Returns a string describing the given DOM node's type.
|
static java.lang.String |
getNodeTypeName(short type)
Returns a string describing the given DOM node type.
|
static org.w3c.dom.Document |
getOwnerDocument(org.w3c.dom.Node node)
Returns the given node's owner document, even if the node is a
Document node. |
static java.lang.String |
getProperty(java.lang.String name)
Get various properties that affects XMLSEC behaviour.
|
static byte[] |
getSKI(java.security.cert.X509Certificate cert) |
static org.w3c.dom.Node |
getXPathParentNode(org.w3c.dom.Node node)
return the Parent node according to XPath model.
|
static boolean |
getXSLTFlag() |
static java.util.Enumeration |
idAttributeNamespaces()
Returns a list of namespace URIs for which ID attributes have been mapped.
|
static void |
indent(org.w3c.dom.Element elem, java.lang.String indent)
Insert text nodes in between elements to indent a DOM node
|
static void |
insertChild(org.w3c.dom.Element parent, org.w3c.dom.Element child, java.lang.String[] namespaces, java.lang.String[] localNames)
Inserts a child element in the correct position relative to the given lists of child element types.
|
static void |
insertChild(org.w3c.dom.Element parent, org.w3c.dom.Element child, java.lang.String[] ns, java.lang.String[] tag, int pos)
Inserts a child element in the correct position relative to the given lists of child element types.
|
static void |
insertChild(XMLElement parent, XMLElement child, java.lang.String[] namespaces, java.lang.String[] localNames)
Inserts a child element in the correct position relative to the given lists of child element types.
|
static void |
insertChild(XMLElement parent, XMLElement child, java.lang.String[] ns, java.lang.String[] tag, int pos)
Inserts a child element in the correct position relative to the given lists of child element types.
|
static org.w3c.dom.Element |
insertChildElementWithText(XMLElement contextElement, java.lang.String namespaceURI, java.lang.String localName, java.lang.String[] namespaceURIs, java.lang.String[] localNames, java.lang.String text, boolean replaceExisting)
Convert the content string into a text
org.w3c.dom.Node and append to the specified org.w3c.dom.Element . |
static java.lang.String |
joinXmlBaseURI(java.util.ArrayList xmlBaseUriList)
FOR INTERNAL USE ONLY.
|
static java.util.Date |
parseDateTime(java.lang.String s)
Parses a date String.
|
static java.lang.String |
randomName()
Generates a random string, suitable for use as a namespace prefix or other XML name where accidental collisions are to be avoided.
|
static byte[] |
readBytes(java.io.InputStream is)
Reads the contents of the given
InputStream and returns a newly allocated byte array. |
static byte[] |
readBytes(java.net.URL url)
Reads the bytes from the given URL.
|
static java.lang.String |
readString(java.io.Reader reader)
Returns the contents of the given
java.io.Reader as a string. |
static void |
removeAllChildren(org.w3c.dom.Node node) |
static void |
removeChildren(org.w3c.dom.Element parent, java.lang.String ns, java.lang.String tag)
Removes any child elements with the given tag and namespace.
|
static java.lang.String |
removeDotSegments(java.lang.String inp)
FOR INTERNAL USE ONLY.
|
static java.lang.String |
removeWhiteSpaces(java.lang.String str) |
static java.lang.String |
resolveNSPrefix(java.lang.String prefix, org.w3c.dom.Node context)
Returns the namespace URI that is in scope for the given namespace prefix and context node.
|
static java.lang.Object |
resolveReference(ObjectReference ref)
Find out what the reference is pointing to by performing all transforms, except the canonicalization ones.
|
static java.util.List |
resolveReferences(XSSignature sig)
Calls @link #resolveReference(ObjectReference) for each references in a signature and puts them into a list
|
static void |
setProperty(java.lang.String name, java.lang.String value)
Set various properties that affects XMLSEC behaviour.
|
static java.lang.String |
stripWS(java.lang.String s)
Strips whitespace from the given string.
|
static byte[] |
toBytesXML(org.w3c.dom.Node node, boolean indent, boolean xmlDecl)
Returns a byte array containing the XML for the given
org.w3c.dom.Node . |
static byte[] |
toBytesXML(XMLNode xmlNode, boolean indent, boolean xmlDecl)
Returns a byte array containing the XML for the given
oracle.security.xmlsec.XMLNode . |
static java.util.List |
toDocumentOrderList(java.util.Collection nodes)
Returns a new list containing the given nodes sorted into document order.
|
static void |
toStreamXML(java.io.OutputStream os, org.w3c.dom.Node node, boolean indent, boolean xmlDecl)
Writes the bytes of the XML for the given
org.w3c.dom.Node to the given stream. |
static void |
toStreamXML(java.io.OutputStream os, XMLNode xmlNode, boolean indent, boolean xmlDecl)
Writes the bytes of the XML for the given
oracle.security.xmlsec.XMLNode to the given stream. |
static java.lang.String |
toStringNode(org.w3c.dom.Node node)
Returns a string representation of the given DOM node (not XML).
|
static java.lang.String |
toStringNodes(java.util.Collection c) |
static java.lang.String |
toStringXML(java.util.Collection c, boolean generateDummyRoot)
Returns a string containing the XML for a Collection of Nodes.
|
static java.lang.String |
toStringXML(org.w3c.dom.Node node, boolean indent, boolean xmlDecl)
Returns a string containing the XML for the given
org.w3c.dom.Node . |
static java.lang.String |
toStringXML(XMLNode xmlNode, boolean indent, boolean xmlDecl)
Returns a string containing the XML for the given
oracle.security.xmlsec.XMLNode . |
static java.net.URI |
transformReference(java.net.URI Base, java.net.URI R)
FOR INTERNAL USE ONLY.
|
public static final java.lang.String PROPERTY_USE_JSR105
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_USE_JSR106
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_USE_OLD_C14N
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_C14N_NS_FILTERED_OUT
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_C14N_PARSER
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_C14N_SPARSE_THRESHOLD
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_USE_MTOM
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_DEBUG_VERIFY
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_USE_EXPLICIT_C14N11
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_MAX_TRANSFORMS
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_ALLOW_EXTERNAL_REF
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_ALLOW_XSLT_TRANSFORM
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_ALLOW_ALL
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_ALLOW_UNVALIDATED_CERT
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_ALLOW_RETRIEVAL_METHOD
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String PROPERTY_DISABLE_ID_CACHING
setProperty(String, String)
, Constant Field Valuespublic static final java.lang.String FIPS_140_2_MODE_SYSTEM_PROPERTY
setProperty(String, String)
, Constant Field Valuespublic static int getMaxTrans()
public static boolean getXSLTFlag()
public static boolean getExternalRefFlag()
public static boolean getAllowUnvalidatedCertFlag()
public static boolean getAllowRetrievalMethodFlag()
public static boolean getAllowAllFlag()
public static javax.xml.parsers.DocumentBuilder createDocBuilder()
javax.xml.parsers.DocumentBuilder
instance with the NamespaceAware property set to true
.public static org.w3c.dom.Document createDocument()
org.w3c.dom.Document
instance.public static javax.xml.transform.Transformer createTransformer(org.w3c.dom.Node n)
n
- a sample node which this transformer will be asked to transformpublic static javax.xml.transform.Transformer createTransformer()
createTransformer(Node)
javax.xml.transform.Transformer
instance ('identity' transformer).public static javax.xml.transform.Transformer createTransformer(javax.xml.transform.Source s)
s
-public static javax.xml.transform.Transformer createTransformer(org.w3c.dom.Node n, javax.xml.transform.Source s)
n
-s
-public static java.lang.String getNodeTypeName(short type)
public static java.lang.String getNodeTypeName(org.w3c.dom.Node node)
public static org.w3c.dom.Document getOwnerDocument(org.w3c.dom.Node node)
Document
node.public static java.lang.String toStringNode(org.w3c.dom.Node node)
public static java.lang.String toStringNodes(java.util.Collection c)
public static org.w3c.dom.Node getXPathParentNode(org.w3c.dom.Node node)
node
-public static void computeAncestors(org.w3c.dom.Node node, java.util.ArrayList lastNodeAncestors)
node
-lastNodeAncestors
- The last node and all its ancestors in document order. i.e. lastNodeAncestors[i] is the parent of lastNodeAncestors[i+1]public static java.lang.String toStringXML(java.util.Collection c, boolean generateDummyRoot) throws javax.xml.transform.TransformerException
c
- Collection of Nodes in document ordergenerateDummyRoot
- set this to true if there is more than one tree, a dummy root element will be generated to contain these subtreesjavax.xml.transform.TransformerException
public static java.lang.String toStringXML(XMLNode xmlNode, boolean indent, boolean xmlDecl) throws javax.xml.transform.TransformerException
oracle.security.xmlsec.XMLNode
.node
- The XMLNode
to serialize to a string.indent
- If true
, element tags will begin on new lines in the output.xmlDecl
- If true
, an XML declaration will be prepended to the output.javax.xml.transform.TransformerException
- If the DOM subtree rooted in this XMLNode
cannot be serialized to a character stream.public static java.lang.String toStringXML(org.w3c.dom.Node node, boolean indent, boolean xmlDecl) throws javax.xml.transform.TransformerException
org.w3c.dom.Node
.node
- The Node
to serialize to a string.indent
- If true
, element tags will begin on new lines in the output.xmlDecl
- If true
, an XML declaration will be prepended to the output.javax.xml.transform.TransformerException
- If the DOM subtree rooted in this Node
cannot be serialized to a character stream.public static byte[] toBytesXML(XMLNode xmlNode, boolean indent, boolean xmlDecl) throws javax.xml.transform.TransformerException
oracle.security.xmlsec.XMLNode
.node
- The XMLNode
to serialize to a byte array.indent
- If true
, element tags will begin on new lines in the output.xmlDecl
- If true
, an XML declaration will be prepended to the output.javax.xml.transform.TransformerException
- If the DOM subtree rooted in the given XMLNode
cannot be serialized to a byte stream.public static byte[] toBytesXML(org.w3c.dom.Node node, boolean indent, boolean xmlDecl) throws javax.xml.transform.TransformerException
org.w3c.dom.Node
.node
- The Node
to serialize to a byte array.indent
- If true
, element tags will begin on new lines in the output.xmlDecl
- If true
, an XML declaration will be prepended to the output.javax.xml.transform.TransformerException
- If the DOM subtree rooted in the given Node
cannot be serialized to a byte stream.public static void toStreamXML(java.io.OutputStream os, XMLNode xmlNode, boolean indent, boolean xmlDecl) throws javax.xml.transform.TransformerException, java.io.IOException
oracle.security.xmlsec.XMLNode
to the given stream.os
- The OutputStream
to which the XML will be written.node
- The XMLNode
to serialize to the stream.indent
- If true
, element tags will begin on new lines in the output.xmlDecl
- If true
, an XML declaration will be prepended to the output.javax.xml.transform.TransformerException
- If the DOM subtree rooted in the given XMLNode
cannot be serialized to a byte stream.java.io.IOException
public static void toStreamXML(java.io.OutputStream os, org.w3c.dom.Node node, boolean indent, boolean xmlDecl) throws javax.xml.transform.TransformerException, java.io.IOException
org.w3c.dom.Node
to the given stream.os
- The OutputStream
to which the XML will be written.node
- The Node
to serialize to the stream.indent
- If true
, element tags will begin on new lines in the output.xmlDecl
- If true
, an XML declaration will be prepended to the output.javax.xml.transform.TransformerException
- If the DOM subtree rooted in the given XMLNode
cannot be serialized to a byte stream.java.io.IOException
public static java.lang.String readString(java.io.Reader reader) throws java.io.IOException
java.io.Reader
as a string.java.io.IOException
public static byte[] readBytes(java.io.InputStream is) throws java.io.IOException
InputStream
and returns a newly allocated byte array.java.io.IOException
public static byte[] readBytes(java.net.URL url) throws java.io.IOException
java.io.IOException
public static java.lang.String stripWS(java.lang.String s)
public static java.util.List toDocumentOrderList(java.util.Collection nodes)
DocOrderComparator
public static XMLElement getInstance(org.w3c.dom.NodeList nodes, java.lang.String tag, java.lang.String ns)
nodes
- The NodeList
containing the element to be wrapped.tag
- The tag name to look for.ns
- The namespace in which tag
is defined.XMLElement
, or null
if a corresponding implementation class cannot be identified or instantiated.public static XMLElement getInstance(java.util.Collection nodes, java.lang.String tag, java.lang.String ns)
nodes
- The java.util.Collection
containing the element to be wrapped.tag
- The tag name to look for.ns
- The namespace in which tag
is defined.XMLElement
, or null
if a corresponding implementation class cannot be identified or instantiated.public static XMLElement getInstance(org.w3c.dom.Element element, java.lang.String tag, java.lang.String ns)
element
- The element to be wrapped.tag
- The tag name to look for; if null
, the tag will be taken from the element (or its xsi:type attribute).ns
- The namespace in which tag
is defined; if null
, the namespace will be taken from the element.XMLElement
, or null
if a corresponding implementation class cannot be identified or instantiated.public static XMLElement getInstance(org.w3c.dom.Element element, java.lang.String tag)
element
- The element to be wrapped.tag
- The tag name to look for; if null
, the tag will be taken from the element.XMLElement
, or null
if a corresponding implementation class cannot be identified or instantiated.public static XMLElement getInstance(org.w3c.dom.Element element)
element
- The element to be wrapped.XMLElement
, or null
if a corresponding implementation class cannot be identified or instantiated.public static void copyNSPrefix(org.w3c.dom.Element source, org.w3c.dom.Element target) throws org.w3c.dom.DOMException
source
- The Element from which the namespace prefix will be taken.target
- The Element to which the source's namespace prefix will be given.org.w3c.dom.DOMException
public static java.lang.String canonicalize(org.w3c.dom.Node input, boolean withComments) throws CanonicalizationException
Node
.input
- The root Node
of the sub-tree to be canonicalized.withComments
- If true
, comments will be preserved, otherwise they will be removed.CanonicalizationException
public static java.lang.String canonicalize(org.w3c.dom.NodeList input, boolean withComments) throws CanonicalizationException
NodeList
.input
- The NodeList
to be canonicalized.withComments
- If true
, comments will be preserved, otherwise they will be removed.NodeList
.CanonicalizationException
public static java.lang.String canonicalize(java.util.Collection nodeSet, boolean withComments) throws CanonicalizationException
nodeSet
- The node-set to be canonicalized.withComments
- If true
, comments will be preserved, otherwise they will be removed.NodeSet
.CanonicalizationException
public static java.lang.String randomName()
Note: The source of randomness used for this method is not cryptographically secure, so the results should not be used as key or seed material for any cryptographic operation.
public static java.lang.String fixURL(java.lang.String urlStr, java.lang.String systemId)
urlStr
- A relative URL string.systemId
- The base URL for the given relative URL. If systemId
is null
, the absolute URL will use the "file" protocol and the file-system current directory path.urlStr
, based on systemId
. If urlStr
is already expanded, or if it or systemId
is invalid, urlStr
is returned unaltered.public static java.lang.String fixURL(java.lang.String urlStr)
urlStr
- A URL string.urlStr
is invalid, then urlStr
is returned unaltered.public static java.lang.String getIdFromURI(java.lang.String uri)
uri
- The URI string containing the ID.null
if none could be found.public static org.w3c.dom.Element getElementById(org.w3c.dom.Document doc, java.lang.String id)
doc
- The Document
to search.id
- The ID attribute value to resolve.Element
with the ID attribute value given by id
, or null
if none could be located in doc
.public static void addIdAttribute(java.lang.String namespaceURI, java.lang.String attrName)
namespaceURI
- The URI identifying the namespace in which the attribute is defined with ID type.attrName
- The local name of the ID attribute.getIdAttributes(java.lang.String)
public static java.util.Enumeration idAttributeNamespaces()
public static java.util.ArrayList getIdAttributes(java.lang.String namespaceURI)
namespaceURI
- The URI identifying the namespace in which the attributes are defined with ID type.java.util.ArrayList
containing any attribute names defined to be of type ID in the given namespace.addIdAttribute(java.lang.String, java.lang.String)
public static java.util.Map getIdAttributesMap()
public static java.lang.String formatDate(java.util.Date date)
date
- The Date
to parse.public static java.lang.String formatTime(java.util.Date date)
time
- The Date
to parse.public static java.lang.String formatDateTime(java.util.Date date)
time
- The Date
to parse.public static java.util.Date parseDateTime(java.lang.String s)
s
- The String to parse.Date
object.public static java.lang.String collectText(org.w3c.dom.Node node)
node
- The node whose text-node children are to be concatenated.node
's text-node children's values.public static java.lang.String resolveNSPrefix(java.lang.String prefix, org.w3c.dom.Node context)
prefix
- The namespace prefix to be resolved.context
- The node to be used to determine the scope.null
if none could be found for the given inputs.public static java.lang.String getNamespaceURI(org.w3c.dom.Node node)
node
- The node for which a namespace is to be resolved.null
if none could be determined. If node
is an Element
without a namespace prefix, the default namespace in scope, if any, will be returned. If node
is an Attr
without a namespace prefix, null
will be returned. For all other nodes, the namespace URI will be null
.public static NamespaceContext createNamespaceContext(org.w3c.dom.Node nsContextNode) throws XPathException
nsContextNode
- A node containing the namespace prefix definitions to be used for the XPath namespace context.org.jaxen.NamespaceContext
with the prefix mappings in scope for nsContextNode
.XPathException
public static java.util.Map<java.lang.String,java.lang.String> getAncestorNamespaces(org.w3c.dom.Element elem)
elem
-public static void removeChildren(org.w3c.dom.Element parent, java.lang.String ns, java.lang.String tag)
parent
- The element whose children will be removed.ns
- The namespace URI of the element(s) to remove.tag
- The tag name of the child element(s) to remove.public static void insertChild(XMLElement parent, XMLElement child, java.lang.String[] ns, java.lang.String[] tag, int pos) throws org.w3c.dom.DOMException
parent
- The element to which a child will be appended.child
- The child element to insert.ns
- An array of namespace URIs corresponding to the tag names in the tag
array.tag
- An array of element tag names, including the one corresponding to the child element to be inserted. The tags must be presented in the order in which they appear in the parent element's schema.pos
- The position in the ns
and tag
arrays at which the element to be inserted appears.java.lang.IllegalArgumentException
- If either of the tag
or ns
array is missing or if they do not correspond in length.org.w3c.dom.DOMException
public static void insertChild(org.w3c.dom.Element parent, org.w3c.dom.Element child, java.lang.String[] ns, java.lang.String[] tag, int pos) throws org.w3c.dom.DOMException
parent
- The element to which a child will be appended.child
- The child element to insert.ns
- An array of namespace URIs corresponding to the tag names in the tag
array.tag
- An array of element tag names, including the one corresponding to the child element to be inserted. The tags must be presented in the order in which they appear in the parent element's schema.pos
- The position in the ns
and tag
arrays at which the element to be inserted appears.java.lang.IllegalArgumentException
- If either of the tag
or ns
array is missing or if they do not correspond in length.org.w3c.dom.DOMException
public static void insertChild(org.w3c.dom.Element parent, org.w3c.dom.Element child, java.lang.String[] namespaces, java.lang.String[] localNames) throws org.w3c.dom.DOMException
parent
- The element to which a child will be appended.child
- The child element to insert.namepaces
- An array of namespace URIs corresponding to the tag names in the localNames
array.localNames
- An array of element local tag names, including the one corresponding to the child element to be inserted. The tags must be presented in the order in which they appear in the parent element's schema.java.lang.IllegalArgumentException
- If either of the namespaces
or localNames
array is missing or if they do not correspond in length.org.w3c.dom.DOMException
public static org.w3c.dom.Element insertChildElementWithText(XMLElement contextElement, java.lang.String namespaceURI, java.lang.String localName, java.lang.String[] namespaceURIs, java.lang.String[] localNames, java.lang.String text, boolean replaceExisting) throws org.w3c.dom.DOMException
org.w3c.dom.Node
and append to the specified org.w3c.dom.Element
.contextElement
- The parent element of the text node to be inserted.namespaceURI
- The namespace of the parent element.localName
-namespaceURIs
- The namespace list corresponding to the list of local names.localNames
- The local name list after which the text node will be inserted.text
- The content string.replaceExisting
- If true
, any existing text Node
will be replaced.org.w3c.dom.Node
.org.w3c.dom.DOMException
public static void insertChild(XMLElement parent, XMLElement child, java.lang.String[] namespaces, java.lang.String[] localNames) throws org.w3c.dom.DOMException
parent
- The element to which a child will be appended.child
- The child element to insert.namepaces
- An array of namespace URIs corresponding to the tag names in the localNames
array.localNames
- An array of element local tag names, including the one corresponding to the child element to be inserted. The tags must be presented in the order in which they appear in the parent element's schema.java.lang.IllegalArgumentException
- If either of the namespaces
or localNames
array is missing or if they do not correspond in length.org.w3c.dom.DOMException
public static org.w3c.dom.Element getFirstChildElement(org.w3c.dom.Node node)
public static org.w3c.dom.Element createElement(org.w3c.dom.Document doc, java.lang.String tag, java.lang.String nsURI, java.lang.String prefix)
public static java.lang.String getAttributeValue(org.w3c.dom.Element elem, java.lang.String name)
public static org.w3c.dom.Element getNextSiblingElement(org.w3c.dom.Node node)
public static void removeAllChildren(org.w3c.dom.Node node)
public static java.lang.String removeWhiteSpaces(java.lang.String str)
public static byte[] decodeDEROctets(byte[] der)
public static byte[] getSKI(java.security.cert.X509Certificate cert)
public static void indent(org.w3c.dom.Element elem, java.lang.String indent)
elem
-indent
- set it to "\n" or "\n "public static void setProperty(java.lang.String name, java.lang.String value)
System.setProperty(java.lang.String, java.lang.String)
or setting VM arguments. Note these properties are not thread safe, set them only during initialization, when you are sure other threads are not using any xmlsec functions
PROPERTY_USE_MTOM
: whether to create a separate MTOM attachment to hold the encrypted data, only works with orassaj provider (default false)PROPERTY_USE_JSR105
: whether to use the JSR 105 for signing/verification (default false)PROPERTY_USE_JSR106
: whether to use the JSR 106 for encryption/decryption (default false)PROPERTY_USE_OLD_C14N
: whether to use the OSDT 10g version of C14N instead of the newer one (default false). Enable this only if you suspect any new c14n issues, that were not there in 10gPROPERTY_C14N_NS_FILTERED_OUT
: whether namespace nodes are filtered out by xpath filters (default false). By default it is assumed that xpath filters do not filter out namespace nodes without filtering out their owner elements, so xpath based transforms and c14n based transforms execute much faster Enable this if you want exact c14n spec compliancePROPERTY_C14N_PARSER
: what kind of XML parser to use when canonicalizing a byte stream, this happens only when you are signing/verifying an entire external XML document i.e. either an SWA attachment or a external URI. (default "DOM". Other options "StAX" and "SAX")PROPERTY_C14N_SPARSE_THRESHOLD
: a fraction between 0.0 and 1.0 to indicate at what percentage sparseness to consider a nodeset as a sparse. Suppose you set it to .2 that means only if the nodeset has less than 20% of the nodes from the original documen, will it considered sparse. (default 0.0 which indicates that it is never sparse)PROPERTY_DEBUG_VERIFY
: whether to emit the cause of a signature verification failure, if this is set, osdt_xmlsec will print to stderr whether the reference validation failed or a signature validation failed, and if a reference validation failed then the uri of the reference and the canonicalized byted of the reference. (default false)PROPERTY_USE_EXPLICIT_C14N11
: whether to explicitly add C14N11 during signature generation when none is specified, only affects the DSigUtils.sign methodsPROPERTY_ALLOW_EXTERNAL_REF
: whether to allow file:: and http:: references. same document and attachment references are always allowedPROPERTY_ALLOW_RETRIEVAL_METHOD
: whether to allow RetrievalMethod mechanism to refer to keysPROPERTY_ALLOW_UNVALIDATED_CERT
: whether to allow verification of Signatures whose KeyInfo contains the actual public keys or a certificates. (If the keyInfo only contains a hint to the certificate then it is allowed). If this is not set public keys are completely disallowed and certificates are allowed only if the callback CertificateValidator.validateCert(java.security.cert.CertPath)
doesn't throw an exceptionPROPERTY_ALLOW_XSLT_TRANSFORM
: whether to allow XSLT transformPROPERTY_MAX_TRANSFORMS
: maximum number of transforms allowed in a Reference or a RetrievalMethod, default is 5PROPERTY_DISABLE_ID_CACHING
: whether to disable Id caching. ID CAching speeds up id based lookup, but it can slow things in rare scenarios.name
-value
-public static java.lang.String getProperty(java.lang.String name)
System.getProperty(java.lang.String)
name
-public static java.net.URI transformReference(java.net.URI Base, java.net.URI R) throws java.net.URISyntaxException
Base
-R
-java.net.URISyntaxException
public static java.lang.String joinXmlBaseURI(java.util.ArrayList xmlBaseUriList) throws java.net.URISyntaxException
xmlBaseUriList
-java.net.URISyntaxException
public static java.lang.String removeDotSegments(java.lang.String inp)
inp
-public static java.lang.String escapeTextNode(java.lang.String text)
text
-public static java.lang.Object resolveReference(ObjectReference ref) throws ReferenceException, oracle.security.crypto.core.AlgorithmIdentifierException, TransformationException
Transforms
ref
- the reference to be resolvedReferenceException
- if a reference cannot be resolved, of if the transform has invalid syntax, or if there isoracle.security.crypto.core.AlgorithmIdentifierException
- if there is a unrecognized transformTransformationException
public static java.util.List resolveReferences(XSSignature sig) throws ReferenceException, oracle.security.crypto.core.AlgorithmIdentifierException, TransformationException
sig
-ReferenceException
oracle.security.crypto.core.AlgorithmIdentifierException
TransformationException
public static DocumentNavigator getDocumentNavigator()