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:
Constuct 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>
- Author:
- Christian Geuer-Pollmann
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic booleanField CacheSignedNodesstatic final StringField MANIFEST_URIstatic final StringField OBJECT_URIFields inherited from class ElementProxy
_baseURI, _constructionElement, _doc, _state, MODE_CREATE, MODE_DECRYPT, MODE_ENCRYPT, MODE_PROCESS, MODE_SIGN, MODE_UNKNOWN, MODE_VERIFY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected XMLSignatureInputThis method returns theXMLSignatureInputwhich is referenced by theURIAttribute.voidMethod generateDigestValueMethod getBaseLocalNameReturns 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 theIdattribute of thisReferenceelementReturnsMessageDigestAlgorithmThis method returns the XMLSignatureInput which represents the node set before some kind of canonicalization is applied for the first time.byte[]Method getReferencedBytesMethod getTransformsDeprecated.use getContentsBeforeTransformationThis method only works works after a call to verify.getType()Return thetypeatttibute of the Reference indicate whether ands:Object,ds:SignatureProperty, ords:ManifestelementgetURI()Returns theURIof thisReferenceelementvoidSets theIdattribute of thisReferenceelementvoidSets thetypeatttibute of the Reference indicate whether ands:Object,ds:SignatureProperty, ords:ManifestelementvoidSets theURIof thisReferenceelementbooleanMethod isReferenceToManifest This returns true if theTypeattribute of theRefernceelement points to a#ManifestelementbooleanMethod isReferenceToObject This returns true if theTypeattribute of theRefernceelement points to a#Objectelementbooleanverify()Tests reference valdiation is success or falseMethods inherited from class SignatureElementProxy
getBaseNamespaceMethods inherited from class ElementProxy
addBase64Element, addBase64Text, addBigIntegerElement, addText, addTextElement, createElementForFamily, getBaseURI, getBigIntegerFromChildElement, getBytesFromChildElement, getBytesFromTextChild, getDefaultPrefix, getDocument, getElement, getElementPlusReturns, getTextFromChildElement, getTextFromTextChild, guaranteeThatElementInCorrectSpace, length, setDefaultPrefix, setElement, setXPathNamespaceContext
-
Field Details
-
CacheSignedNodes
public static boolean CacheSignedNodesField CacheSignedNodes -
OBJECT_URI
-
MANIFEST_URI
-
-
Constructor Details
-
Reference
protected Reference(Document doc, String BaseURI, String ReferenceURI, Manifest manifest, Transforms transforms, String messageDigestAlgorithm) throws XMLSignatureException Constructor Reference- Parameters:
doc- theDocumentin whichXMLsignatureis placedBaseURI- the URI of the resource where the XML instance will be storedReferenceURI- URI indicate where is data which will digestedmanifest-transforms-Transformsapplied to datamessageDigestAlgorithm-Digest algorithmwhich is applied to the data TODO should we throw XMLSignatureException if MessageDigestAlgoURI is wrong?- Throws:
XMLSignatureException
-
Reference
- Parameters:
element-ReferenceelementBaseURI- the URI of the resource where the XML instance was storedmanifest- is theManifestofSignedInfoin which the Reference occurs. We need this because the Manifest has the individualResourceResolvers whcih have been set by the user- Throws:
XMLSecurityException
-
-
Method Details
-
getMessageDigestAlgorithm
ReturnsMessageDigestAlgorithm- Returns:
MessageDigestAlgorithm- Throws:
XMLSignatureException
-
setURI
Sets theURIof thisReferenceelement- Parameters:
URI- theURIof thisReferenceelement
-
getURI
Returns theURIof thisReferenceelement- Returns:
- URI the
URIof thisReferenceelement
-
setId
Sets theIdattribute of thisReferenceelement- Parameters:
Id- theIdattribute of thisReferenceelement
-
getId
Returns theIdattribute of thisReferenceelement- Returns:
- Id the
Idattribute of thisReferenceelement
-
setType
Sets thetypeatttibute of the Reference indicate whether ands:Object,ds:SignatureProperty, ords:Manifestelement- Parameters:
Type- thetypeattribute of the Reference
-
getType
Return thetypeatttibute of the Reference indicate whether ands:Object,ds:SignatureProperty, ords:Manifestelement- Returns:
- the
typeattribute of the Reference
-
typeIsReferenceToObject
public boolean typeIsReferenceToObject()Method isReferenceToObject This returns true if theTypeattribute of theRefernceelement points to a#Objectelement- Returns:
- true if the Reference type indicates that this Reference points to an
Object
-
typeIsReferenceToManifest
public boolean typeIsReferenceToManifest()Method isReferenceToManifest This returns true if theTypeattribute of theRefernceelement points to a#Manifestelement- 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
-
getTransformsInput
Deprecated.use getContentsBeforeTransformationReturns the data which is referenced by the URI attribute. This method only works works after a call to verify.- Returns:
- a XMLSignature with a byte array.
- Throws:
ReferenceNotInitializedException
-
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 works after a call to verify.- Returns:
- the transformed output(i.e. what is going to be digested).
-
dereferenceURIandPerformTransforms
protected XMLSignatureInput dereferenceURIandPerformTransforms(OutputStream os) throws XMLSignatureException This method returns theXMLSignatureInputwhich is referenced by theURIAttribute.- 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:
InvalidTransformExceptionTransformationExceptionXMLSecurityExceptionXMLSignatureException
-
getReferencedBytes
Method getReferencedBytes- Returns:
- the bytes that will be used to generated digest.
- Throws:
ReferenceNotInitializedExceptionXMLSignatureException
-
getDigestValue
Returns the digest value.- Returns:
- the digest value.
- Throws:
Base64DecodingException- if Reference contains no proper base64 encoded data.XMLSecurityException- if the Reference does not contain a DigestValue element
-
verify
Tests reference valdiation is success or false- Returns:
- true if reference valdiation is success, otherwise false
- Throws:
ReferenceNotInitializedExceptionXMLSecurityException
-
getBaseLocalName
Method getBaseLocalName- Specified by:
getBaseLocalNamein classElementProxy- Returns:
- the localname of the Elements of the sub-class.
-