Class Reference
java.lang.Object
org.apache.xml.security.utils.ElementProxy
org.apache.xml.security.utils.SignatureElementProxy
org.apache.xml.security.signature.Reference
Handles
<ds:Reference>
elements.
This includes:
Construct a ds:Reference
from an Element
.
Create a new reference
Document doc; MessageDigestAlgorithm sha1 = MessageDigestAlgorithm.getInstance("http://#sha1"); Reference ref = new Reference(new XMLSignatureInput(new FileInputStream("1.gif"), "http://localhost/1.gif", (Transforms) null, sha1); Element refElem = ref.toElement(doc);
Verify a reference
Element refElem = doc.getElement("Reference"); // PSEUDO Reference ref = new Reference(refElem); String url = ref.getURI(); ref.setData(new XMLSignatureInput(new FileInputStream(url))); if (ref.verify()) { System.out.println("verified"); }
<element name="Reference" type="ds:ReferenceType"/> <complexType name="ReferenceType"> <sequence> <element ref="ds:Transforms" minOccurs="0"/> <element ref="ds:DigestMethod"/> <element ref="ds:DigestValue"/> </sequence> <attribute name="Id" type="ID" use="optional"/> <attribute name="URI" type="anyURI" use="optional"/> <attribute name="Type" type="anyURI" use="optional"/> </complexType>
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Field MANIFEST_URIstatic final int
The maximum number of transforms per reference, if secure validation is enabled.static final String
Field OBJECT_URIFields inherited from class org.apache.xml.security.utils.ElementProxy
baseURI
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected XMLSignatureInput
This method returns theXMLSignatureInput
which is referenced by theURI
Attribute.void
Method generateDigestValueMethod getBaseLocalName Returns the localname of the Elements of the sub-class.Returns the XMLSignatureInput which is the result of the Transforms.Returns the XMLSignatureInput which is created by de-referencing the URI attribute.byte[]
Returns the digest value.Method getHTMLRepresentationgetId()
Returns theId
attribute of thisReference
elementReturnsMessageDigestAlgorithm
This method returns the XMLSignatureInput which represents the node set before some kind of canonicalization is applied for the first time.Get the ReferenceData that corresponds to the cached representation of the dereferenced object before transformation.byte[]
Method getReferencedBytesMethod getTransformsThis method only works after a call to verify.getType()
Return thetype
atttibute of the Reference indicate whether ands:Object
,ds:SignatureProperty
, ords:Manifest
elementgetURI()
Returns theURI
of thisReference
elementvoid
Sets theId
attribute of thisReference
elementvoid
Sets thetype
atttibute of the Reference indicate whether ands:Object
,ds:SignatureProperty
, ords:Manifest
element.void
Sets theURI
of thisReference
elementboolean
Method isReferenceToManifest This returns true if theType
attribute of theReference
element points to a#Manifest
elementboolean
Method isReferenceToObject This returns true if theType
attribute of theReference
element points to a#Object
elementboolean
verify()
Tests reference validation is success or falseMethods inherited from class org.apache.xml.security.utils.SignatureElementProxy
getBaseNamespace
Methods inherited from class org.apache.xml.security.utils.ElementProxy
addBase64Element, addBase64Text, addBigIntegerElement, addReturnToSelf, addText, addTextElement, appendOther, appendSelf, appendSelf, createElementForFamily, createElementForFamilyLocal, createText, getBaseURI, getBigIntegerFromChildElement, getBytesFromTextChild, getDefaultPrefix, getDocument, getElement, getElementPlusReturns, getFirstChild, getLocalAttribute, getTextFromChildElement, getTextFromTextChild, length, registerDefaultPrefixes, setDefaultPrefix, setDocument, setElement, setElement, setLocalAttribute, setLocalIdAttribute, setXPathNamespaceContext
-
Field Details
-
OBJECT_URI
Field OBJECT_URI- See Also:
-
MANIFEST_URI
Field MANIFEST_URI- See Also:
-
MAXIMUM_TRANSFORM_COUNT
public static final int MAXIMUM_TRANSFORM_COUNTThe maximum number of transforms per reference, if secure validation is enabled.- See Also:
-
-
Constructor Details
-
Reference
protected Reference(Document doc, String baseURI, String referenceURI, Manifest manifest, Transforms transforms, String messageDigestAlgorithm) throws XMLSignatureException Constructor Reference- Parameters:
doc
- theDocument
in whichXMLsignature
is placedbaseURI
- the URI of the resource where the XML instance will be storedreferenceURI
- URI indicate where is data which will digestedmanifest
-transforms
-Transforms
applied to datamessageDigestAlgorithm
-Digest algorithm
which is applied to the data TODO should we throw XMLSignatureException if MessageDigestAlgoURI is wrong?- Throws:
XMLSignatureException
-
Reference
- Parameters:
element
-Reference
elementbaseURI
- the URI of the resource where the XML instance was storedmanifest
- is theManifest
ofSignedInfo
in which the Reference occurs. We need this because the Manifest has the individualResourceResolver
s which have been set by the user- Throws:
XMLSecurityException
-
Reference
protected Reference(Element element, String baseURI, Manifest manifest, boolean secureValidation) throws XMLSecurityException - Parameters:
element
-Reference
elementbaseURI
- the URI of the resource where the XML instance was storedmanifest
- is theManifest
ofSignedInfo
in which the Reference occurs.secureValidation
- whether secure validation is enabled or not We need this because the Manifest has the individualResourceResolver
s which have been set by the user- Throws:
XMLSecurityException
-
-
Method Details
-
getMessageDigestAlgorithm
ReturnsMessageDigestAlgorithm
- Returns:
MessageDigestAlgorithm
- Throws:
XMLSignatureException
-
setURI
Sets theURI
of thisReference
element- Parameters:
uri
- theURI
of thisReference
element
-
getURI
Returns theURI
of thisReference
element- Returns:
- URI the
URI
of thisReference
element
-
setId
Sets theId
attribute of thisReference
element- Parameters:
id
- theId
attribute of thisReference
element
-
getId
Returns theId
attribute of thisReference
element- Returns:
- Id the
Id
attribute of thisReference
element
-
setType
Sets thetype
atttibute of the Reference indicate whether ands:Object
,ds:SignatureProperty
, ords:Manifest
element.- Parameters:
type
- thetype
attribute of the Reference
-
getType
Return thetype
atttibute of the Reference indicate whether ands:Object
,ds:SignatureProperty
, ords:Manifest
element- Returns:
- the
type
attribute of the Reference
-
typeIsReferenceToObject
public boolean typeIsReferenceToObject()Method isReferenceToObject This returns true if theType
attribute of theReference
element points to a#Object
element- Returns:
- true if the Reference type indicates that this Reference points to an
Object
-
typeIsReferenceToManifest
public boolean typeIsReferenceToManifest()Method isReferenceToManifest This returns true if theType
attribute of theReference
element points to a#Manifest
element- Returns:
- true if the Reference type indicates that this Reference points to a
Manifest
-
generateDigestValue
Method generateDigestValue -
getContentsBeforeTransformation
Returns the XMLSignatureInput which is created by de-referencing the URI attribute.- Returns:
- the XMLSignatureInput of the source of this reference
- Throws:
ReferenceNotInitializedException
- If the resolver found any problem resolving the reference
-
getContentsAfterTransformation
Returns the XMLSignatureInput which is the result of the Transforms.- Returns:
- a XMLSignatureInput with all transformations applied.
- Throws:
XMLSignatureException
-
getNodesetBeforeFirstCanonicalization
This method returns the XMLSignatureInput which represents the node set before some kind of canonicalization is applied for the first time.- Returns:
- Gets a the node doing everything till the first c14n is needed
- Throws:
XMLSignatureException
-
getHTMLRepresentation
Method getHTMLRepresentation- Returns:
- The HTML of the transformation
- Throws:
XMLSignatureException
-
getTransformsOutput
This method only works after a call to verify.- Returns:
- the transformed output(i.e. what is going to be digested).
-
getReferenceData
Get the ReferenceData that corresponds to the cached representation of the dereferenced object before transformation. -
dereferenceURIandPerformTransforms
protected XMLSignatureInput dereferenceURIandPerformTransforms(OutputStream os) throws XMLSignatureException This method returns theXMLSignatureInput
which is referenced by theURI
Attribute.- Parameters:
os
- where to write the transformation can be null.- Returns:
- the element to digest
- Throws:
XMLSignatureException
- See Also:
-
getTransforms
public Transforms getTransforms() throws XMLSignatureException, InvalidTransformException, TransformationException, XMLSecurityExceptionMethod getTransforms- Returns:
- The transforms that applied this reference.
- Throws:
InvalidTransformException
TransformationException
XMLSecurityException
XMLSignatureException
-
getReferencedBytes
Method getReferencedBytes- Returns:
- the bytes that will be used to generated digest.
- Throws:
ReferenceNotInitializedException
XMLSignatureException
-
getDigestValue
Returns the digest value.- Returns:
- the digest value.
- Throws:
XMLSecurityException
- if the Reference does not contain a DigestValue element
-
verify
Tests reference validation is success or false- Returns:
- true if reference validation is success, otherwise false
- Throws:
ReferenceNotInitializedException
XMLSecurityException
-
getBaseLocalName
Method getBaseLocalName Returns the localname of the Elements of the sub-class.- Specified by:
getBaseLocalName
in classElementProxy
- Returns:
- the localname of the Elements of the sub-class.
-