Class SAMLObjectContentReference
- All Implemented Interfaces:
ConfigurableContentReference,ContentReference,TransformsConfigurableContentReference
The default digest algorithm used is SignatureConstants.ALGO_ID_DIGEST_SHA256.
The default set of transforms applied consists of SignatureConstants.TRANSFORM_ENVELOPED_SIGNATURE
and SignatureConstants.TRANSFORM_C14N_EXCL_WITH_COMMENTS.
When generating an exclusive canonicalization transform, an inclusive namespace list is
generated from the namespaces, retrieved from XMLObject.getNamespaces(),
used by the SAML object to be signed and all of it's descendants.
Note that the SAML specification states that: 1) an exclusive canonicalization transform (either with or without comments) SHOULD be used. 2) transforms other than enveloped signature and one of the two exclusive canonicalizations SHOULD NOT be used. Careful consideration should be made before deviating from these recommendations.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringAlgorithm used to digest the content.private final org.slf4j.LoggerClass logger.private final SignableSAMLObjectSAMLObject this reference refers to.Transforms applied to the content. -
Constructor Summary
ConstructorsConstructorDescriptionSAMLObjectContentReference(SignableSAMLObject newSignableObject) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidcreateReference(org.apache.xml.security.signature.XMLSignature signature) Called by the signature marshaller to allow references to be added to the signature.Gets the algorithm used to digest the content.Gets the transforms applied to the content prior to digest generation.private voidpopulateNamespacePrefixes(Set<String> namespacePrefixes, XMLObject signatureContent) Populates the given set with the non-visibly used namespace prefixes used by the given XMLObject and all of its descendants, as determined by the signature content object's namespace manager.private voidprocessExclusiveTransform(org.apache.xml.security.signature.XMLSignature signature, org.apache.xml.security.transforms.Transform transform) Populate the inclusive namspace prefixes on the specified Apache (exclusive) transform object.voidsetDigestAlgorithm(String newAlgorithm) Sets the algorithm used to digest the content.
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
signableObject
SAMLObject this reference refers to. -
digestAlgorithm
Algorithm used to digest the content. -
transforms
Transforms applied to the content.
-
-
Constructor Details
-
SAMLObjectContentReference
Constructor.- Parameters:
newSignableObject- the SAMLObject this reference refers to
-
-
Method Details
-
getTransforms
Gets the transforms applied to the content prior to digest generation.- Specified by:
getTransformsin interfaceTransformsConfigurableContentReference- Returns:
- the transforms applied to the content prior to digest generation
-
getDigestAlgorithm
Gets the algorithm used to digest the content..- Specified by:
getDigestAlgorithmin interfaceConfigurableContentReference- Returns:
- the algorithm used to digest the content
-
setDigestAlgorithm
Sets the algorithm used to digest the content..- Specified by:
setDigestAlgorithmin interfaceConfigurableContentReference- Parameters:
newAlgorithm- the algorithm used to digest the content
-
createReference
public void createReference(@Nonnull org.apache.xml.security.signature.XMLSignature signature) Called by the signature marshaller to allow references to be added to the signature.- Specified by:
createReferencein interfaceContentReference- Parameters:
signature- the signature object
-
processExclusiveTransform
private void processExclusiveTransform(@Nonnull org.apache.xml.security.signature.XMLSignature signature, @Nonnull org.apache.xml.security.transforms.Transform transform) Populate the inclusive namspace prefixes on the specified Apache (exclusive) transform object.- Parameters:
signature- the Apache XMLSignature objecttransform- the Apache Transform object representing an exclusive transform
-
populateNamespacePrefixes
private void populateNamespacePrefixes(@Nonnull @Live Set<String> namespacePrefixes, @Nonnull XMLObject signatureContent) Populates the given set with the non-visibly used namespace prefixes used by the given XMLObject and all of its descendants, as determined by the signature content object's namespace manager.- Parameters:
namespacePrefixes- the namespace prefix set to be populatedsignatureContent- the XMLObject whose namespace prefixes will be used to populate the set
-