public class AMSignatureProvider extends Object implements SignatureProvider
SignatureProvider
is an interface
to be implemented to sign and verify xml signature
Modifier and Type | Field and Description |
---|---|
protected KeyProvider |
keystore |
Constructor and Description |
---|
AMSignatureProvider()
Default Constructor
|
Modifier and Type | Method and Description |
---|---|
static Element |
createDSctx(Document doc,
String prefix,
String namespace) |
protected String |
getAlgorithmURI(String algorithm)
Return algorithm URI for the given algorithm.
|
protected X509Certificate |
getCertificate(String certString,
String format)
Get the X509Certificate from encoded cert string
|
KeyProvider |
getKeyProvider()
Get the real key provider
|
protected PublicKey |
getPublicKey(X509Certificate cert)
Returns the public key from the certificate embedded in the KeyInfo.
|
protected PublicKey |
getPublicKeybyDSARSAkeyValue(Document doc,
Element reference) |
protected PublicKey |
getX509PublicKey(Document doc,
org.apache.xml.security.keys.KeyInfo keyinfo)
Get the X509Certificate embedded in the KeyInfo
|
void |
initialize(KeyProvider keyProvider)
Constructor
|
protected boolean |
isValidAlgorithm(String algorithm) |
Element |
signWithBinarySecurityToken(Document doc,
Certificate cert,
String algorithm,
List ids,
String referenceType)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signWithKerberosToken(Document doc,
Key key,
String algorithm,
List ids)
Sign part of the XML document wth kerberos security token using
referred by the supplied a list of id attributes of nodes.
|
Element |
signWithSAMLToken(Document doc,
Certificate cert,
String assertionID,
String algorithm,
List ids)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signWithSAMLToken(Document doc,
Key key,
boolean symmetricKey,
Certificate sigingCert,
Certificate encryptCert,
String assertionID,
String algorithm,
List ids)
Sign part of the XML document referred by the supplied a list
of id attributes of nodes using SAML Token.
|
Element |
signWithUserNameToken(Document doc,
Certificate cert,
String algorithm,
List ids)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signWithWSSSAMLTokenProfile(Document doc,
Certificate cert,
String assertionID,
String algorithm,
List ids)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signWithWSSSAMLTokenProfile(Document doc,
Certificate cert,
String assertionID,
String algorithm,
List ids,
String wsfVersion)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signWithWSSX509TokenProfile(Document doc,
Certificate cert,
String algorithm,
List ids)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signWithWSSX509TokenProfile(Document doc,
Certificate cert,
String algorithm,
List ids,
String wsfVersion)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signXML(Document doc,
String certAlias)
Sign the xml document using enveloped signatures.
|
Element |
signXML(Document doc,
String certAlias,
String algorithm)
Sign the xml document using enveloped signatures.
|
Element |
signXML(Document doc,
String certAlias,
String algorithm,
List ids)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signXML(Document doc,
String certAlias,
String algorithm,
String id)
Sign part of the xml document referered by the supplied id attribute
using enveloped signatures and use exclusive xml canonicalization.
|
Element |
signXML(Document doc,
String certAlias,
String algorithm,
String transformAlag,
List ids)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
Element |
signXML(Document doc,
String certAlias,
String algorithm,
String id,
String xpath)
Sign part of the xml document referered by the supplied id attribute
using enveloped signatures and use exclusive xml canonicalization.
|
Element |
signXML(Document doc,
String certAlias,
String algorithm,
String idAttrName,
String id,
boolean includeCert)
Sign part of the xml document referered by the supplied id attribute
using enveloped signatures and use exclusive xml canonicalization.
|
Element |
signXML(Document doc,
String certAlias,
String algorithm,
String idAttrName,
String id,
boolean includeCert,
String xpath)
Sign part of the xml document referred by the supplied id attribute
using enveloped signatures and use exclusive xml canonicalization.
|
String |
signXML(String xmlString,
String certAlias)
Sign the xml string using enveloped signatures.
|
String |
signXML(String xmlString,
String certAlias,
String algorithm)
Sign the xml string using enveloped signatures.
|
String |
signXML(String xmlString,
String certAlias,
String algorithm,
List ids)
Sign part of the xml document referered by the supplied a list
of id attributes of nodes
|
String |
signXML(String xmlString,
String certAlias,
String algorithm,
String id)
Sign the xml string using enveloped signatures.
|
String |
signXML(String xmlString,
String certAlias,
String algorithm,
String idAttrName,
String id,
boolean includeCert)
Sign part of the xml document referered by the supplied id attribute
using enveloped signatures and use exclusive xml canonicalization.
|
Element |
signXMLUsingKeyPass(Document doc,
String certAlias,
String encryptedKeyPass,
String algorithm,
String idAttrName,
String id,
boolean includeCert,
String xpath)
Sign part of the XML document referred by the supplied id attribute
using enveloped signatures and use exclusive XML canonicalization.
|
boolean |
verifyWSSSignature(Document document,
Key key)
Verify web services message signature using specified key
|
boolean |
verifyWSSSignature(Document document,
Key key,
String certAlias,
String encryptAlias)
Verify web services message signature using specified key
|
boolean |
verifyWSSSignature(Document document,
String certAlias)
Verify all the signatures of the XML document for the
web services security.
|
boolean |
verifyXMLSignature(Document doc)
Verify the signature of the xml document
|
boolean |
verifyXMLSignature(Document doc,
Certificate cert)
Verify the signature of the xml document
|
boolean |
verifyXMLSignature(Document doc,
String certAlias)
Verify all the signatures of the xml document
|
boolean |
verifyXMLSignature(Document doc,
String idAttrName,
String certAlias)
Verify the signature of a DOM Document
|
boolean |
verifyXMLSignature(Element element)
Verify the signature of the xml element.
|
boolean |
verifyXMLSignature(Element element,
String certAlias)
Verify the signature of the xml document
|
boolean |
verifyXMLSignature(Element element,
String idAttrName,
String certAlias)
Verify the signature of the xml document
|
boolean |
verifyXMLSignature(String xmlString)
Verify the signature of the xml string
|
boolean |
verifyXMLSignature(String xmlString,
String certAlias)
Verify the signature of the xml string
|
boolean |
verifyXMLSignature(String wsfVersion,
String certAlias,
Document doc)
Verify all the signatures of the xml document
|
boolean |
verifyXMLSignature(String xmlString,
String idAttrName,
String certAlias)
Verify the signature of the xml string
|
protected KeyProvider keystore
public void initialize(KeyProvider keyProvider)
initialize
in interface SignatureProvider
keyProvider
- KeyProvider
objectpublic Element signXML(Document doc, String certAlias) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias nameXMLSignatureException
- if the document could not be signedpublic Element signXML(Document doc, String certAlias, String algorithm) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmXMLSignatureException
- if the document could not be signedpublic String signXML(String xmlString, String certAlias) throws XMLSignatureException
signXML
in interface SignatureProvider
xmlString
- xml string to be signedcertAlias
- Signer's certificate alias nameXMLSignatureException
- if the xml string could not be signedpublic String signXML(String xmlString, String certAlias, String algorithm) throws XMLSignatureException
signXML
in interface SignatureProvider
xmlString
- xml string to be signedcertAlias
- Signer's certificate alias namealgorithm
- XML Signature algorithmXMLSignatureException
- if the xml string could not be signedpublic Element signXML(Document doc, String certAlias, String algorithm, String id) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmid
- id attribute value of the node to be signedXMLSignatureException
- if the document could not be signedpublic Element signXML(Document doc, String certAlias, String algorithm, String id, String xpath) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmid
- id attribute value of the node to be signedxpath
- expression should uniquly identify a node before whichXMLSignatureException
- if the document could not be signedpublic Element signXML(Document doc, String certAlias, String algorithm, String idAttrName, String id, boolean includeCert) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmidAttrName
- attribute name for the id attribute of the node to
be signedid
- id attribute value of the node to be signedincludeCert
- if true, include the signing certificate in KeyInfo.
if false, does not include the signing certificate.XMLSignatureException
- if the document could not be signedpublic String signXML(String xmlString, String certAlias, String algorithm, String idAttrName, String id, boolean includeCert) throws XMLSignatureException
signXML
in interface SignatureProvider
xmlString
- a string representing XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmidAttrName
- attribute name for the id attribute of the node to be
signed.id
- id attribute value of the node to be signedincludeCert
- if true, include the signing certificate in KeyInfo.
if false, does not include the signing certificate.XMLSignatureException
- if the document could not be signedpublic Element signXML(Document doc, String certAlias, String algorithm, String idAttrName, String id, boolean includeCert, String xpath) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmidAttrName
- attribute name for the id attribute of the node to
be signedid
- id attribute value of the node to be signedincludeCert
- if true, include the signing certificate in KeyInfo.
if false, does not include the signing certificate.xpath
- expression should uniquly identify a node before whichXMLSignatureException
- if the document could not be signedpublic Element signXMLUsingKeyPass(Document doc, String certAlias, String encryptedKeyPass, String algorithm, String idAttrName, String id, boolean includeCert, String xpath) throws XMLSignatureException
signXMLUsingKeyPass
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias nameencryptedKeyPass
- Use the supplied encrypted key password to get the private keyalgorithm
- XML signature algorithmidAttrName
- attribute name for the id attribute of the node to be
signed.id
- id attribute value of the node to be signedincludeCert
- if true, include the signing certificate in
KeyInfo
.
if false, does not include the signing certificate.xpath
- expression should uniquely identify a node before whichXMLSignatureException
- if the document could not be signedpublic String signXML(String xmlString, String certAlias, String algorithm, String id) throws XMLSignatureException
signXML
in interface SignatureProvider
xmlString
- xml string to be signedcertAlias
- Signer's certificate alias namealgorithm
- XML Signature algorithmid
- id attribute value of the node to be signedXMLSignatureException
- if the xml string could not be signedpublic Element signXML(Document doc, String certAlias, String algorithm, List ids) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signXML(Document doc, String certAlias, String algorithm, String transformAlag, List ids) throws XMLSignatureException
signXML
in interface SignatureProvider
doc
- XML dom objectcertAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmtransformAlag
- XML siganture transform algorithm
Those transfer constants are defined as
SAMLConstants.TRANSFORM_XXX.ids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic String signXML(String xmlString, String certAlias, String algorithm, List ids) throws XMLSignatureException
signXML
in interface SignatureProvider
xmlString
- XML.certAlias
- Signer's certificate alias namealgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signWithWSSSAMLTokenProfile(Document doc, Certificate cert, String assertionID, String algorithm, List ids) throws XMLSignatureException
signWithWSSSAMLTokenProfile
in interface SignatureProvider
doc
- XML dom objectcert
- Signer's certificateassertionID
- assertion IDalgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signWithWSSSAMLTokenProfile(Document doc, Certificate cert, String assertionID, String algorithm, List ids, String wsfVersion) throws XMLSignatureException
signWithWSSSAMLTokenProfile
in interface SignatureProvider
doc
- XML dom objectcert
- Signer's certificateassertionID
- assertion IDalgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedwsfVersion
- the web services version.XMLSignatureException
- if the document could not be signedpublic Element signWithWSSX509TokenProfile(Document doc, Certificate cert, String algorithm, List ids) throws XMLSignatureException
signWithWSSX509TokenProfile
in interface SignatureProvider
doc
- XML dom objectcert
- Signer's certificatealgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signWithWSSX509TokenProfile(Document doc, Certificate cert, String algorithm, List ids, String wsfVersion) throws XMLSignatureException
signWithWSSX509TokenProfile
in interface SignatureProvider
doc
- XML dom objectcert
- Signer's certificatealgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedwsfVersion
- the web services version.XMLSignatureException
- if the document could not be signedpublic boolean verifyXMLSignature(Document doc, String certAlias) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
doc
- XML dom document whose signature to be verifiedcertAlias
- certAlias alias for Signer's certificate, this is used
to search signer's public certificate if it is not presented in
ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(String wsfVersion, String certAlias, Document doc) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
wsfVersion
- the web services version.doc
- XML dom document whose signature to be verifiedcertAlias
- certAlias alias for Signer's certificate, this is used
to search signer's public certificate if it is not presented in
ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(Document doc) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
doc
- XML dom document whose signature to be verifiedXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(Element element) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
element
- XML dom element whose signature to be verifiedXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(Element element, String certAlias) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
element
- XML Element whose signature to be verifiedcertAlias
- certAlias alias for Signer's certificate, this is used
to search signer's public certificate if it is not
presented in ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(Element element, String idAttrName, String certAlias) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
element
- XML Element whose signature to be verifiedidAttrName
- Attribute name for the id attributecertAlias
- certAlias alias for Signer's certificate, this is used
to search signer's public certificate if it is not
presented in ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(Document doc, Certificate cert) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
doc
- XML dom document whose signature to be verifiedcert
- Signer's certificate, this is used to search signer's
public certificate if it is not presented in ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(String xmlString) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
xmlString
- XML string whose signature to be verifiedXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(String xmlString, String certAlias) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
xmlString
- XML string whose signature to be verifiedcertAlias
- certAlias alias for Signer's certificate, this is used
to search signer's public certificate if it is not
presented in ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(String xmlString, String idAttrName, String certAlias) throws XMLSignatureException
verifyXMLSignature
in interface SignatureProvider
xmlString
- XML string whose signature to be verifiedidAttrName
- Attribute name for the id attributecertAlias
- certAlias alias for Signer's certificate, this is used
to search signer's public certificate if it is not
presented in ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic boolean verifyXMLSignature(Document doc, String idAttrName, String certAlias) throws XMLSignatureException
doc
- a DOM DocumentidAttrName
- Attribute name for the id attributecertAlias
- certAlias alias for Signer's certificate, this is used
to search signer's public certificate if it is not
presented in ds:KeyInfoXMLSignatureException
- if problem occurs during verificationpublic KeyProvider getKeyProvider()
getKeyProvider
in interface SignatureProvider
protected PublicKey getX509PublicKey(Document doc, org.apache.xml.security.keys.KeyInfo keyinfo)
keyinfo
- KeyInfoprotected PublicKey getPublicKeybyDSARSAkeyValue(Document doc, Element reference) throws XMLSignatureException
XMLSignatureException
protected X509Certificate getCertificate(String certString, String format)
certString
- BASE64 or PKCS7 encoded certtificate stringformat
- encoded formatprotected PublicKey getPublicKey(X509Certificate cert)
cert
- X509 Certificateprotected boolean isValidAlgorithm(String algorithm)
public Element signWithSAMLToken(Document doc, Certificate cert, String assertionID, String algorithm, List ids) throws XMLSignatureException
signWithSAMLToken
in interface SignatureProvider
doc
- XML dom objectcert
- Signer's certificateassertionID
- assertion IDalgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signWithSAMLToken(Document doc, Key key, boolean symmetricKey, Certificate sigingCert, Certificate encryptCert, String assertionID, String algorithm, List ids) throws XMLSignatureException
signWithSAMLToken
in interface SignatureProvider
doc
- XML dom objectkey
- the key that will be used to sign the document.symmetricKey
- true if the supplied key is a symmetric key type.sigingCert
- signer's Certificate. If present, this certificate
will be added as part of signature KeyInfo
.encryptCert
- the certificate if present will be used to encrypt
the symmetric key and replay it as part of KeyInfo
assertionID
- assertion ID for the SAML Security Tokenalgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signWithKerberosToken(Document doc, Key key, String algorithm, List ids) throws XMLSignatureException
SignatureProvider
signWithKerberosToken
in interface SignatureProvider
doc
- the XML DOM
document.key
- Security Key.algorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signWithUserNameToken(Document doc, Certificate cert, String algorithm, List ids) throws XMLSignatureException
signWithUserNameToken
in interface SignatureProvider
doc
- XML dom objectcert
- Signer's certificatealgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedXMLSignatureException
- if the document could not be signedpublic Element signWithBinarySecurityToken(Document doc, Certificate cert, String algorithm, List ids, String referenceType) throws XMLSignatureException
signWithBinarySecurityToken
in interface SignatureProvider
doc
- XML dom objectcert
- Signer's certificatealgorithm
- XML signature algorithmids
- list of id attribute values of nodes to be signedreferenceType
- signed element reference typeXMLSignatureException
- if the document could not be signedpublic boolean verifyWSSSignature(Document document, String certAlias) throws XMLSignatureException
verifyWSSSignature
in interface SignatureProvider
document
- XML dom document whose signature to be verifiedcertAlias
- alias for Signer's certificate, this is used to search
signer's public certificate if it is not presented in
ds:KeyInfo
.XMLSignatureException
- if problem occurs during verificationpublic boolean verifyWSSSignature(Document document, Key key) throws XMLSignatureException
verifyWSSSignature
in interface SignatureProvider
document
- the document to be validatedkey
- the secret key to be used for validating signatureXMLSignatureException
public boolean verifyWSSSignature(Document document, Key key, String certAlias, String encryptAlias) throws XMLSignatureException
verifyWSSSignature
in interface SignatureProvider
document
- the document to be validatedkey
- the secret key to be used for validating signaturecertAlias
- the certificate alias used for validating the signature
if the key is not available.encryptAlias
- the certificate alias that may be used to decrypt
the symmetric key that may be part of KeyInfo
XMLSignatureException
Copyright © 2010–2025 Open Identity Platform Community. All rights reserved.