Author: anil.saldhana(a)jboss.com
Date: 2009-08-27 20:34:20 -0400 (Thu, 27 Aug 2009)
New Revision: 748
Modified:
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java
Log:
add trace
Modified:
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java
===================================================================
---
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java 2009-08-27
22:37:13 UTC (rev 747)
+++
identity-federation/trunk/jboss-identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java 2009-08-28
00:34:20 UTC (rev 748)
@@ -57,6 +57,7 @@
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
+import org.apache.log4j.Logger;
import org.jboss.identity.federation.core.saml.v2.util.DocumentUtil;
import org.jboss.identity.federation.core.util.JAXBUtil;
import org.jboss.identity.xmlsec.w3.xmldsig.ObjectFactory;
@@ -73,6 +74,9 @@
*/
public class XMLSignatureUtil
{
+ private static Logger log = Logger.getLogger(XMLSignatureUtil.class);
+ private static boolean trace = log.isTraceEnabled();
+
private static String pkgName = "org.jboss.identity.federation.w3.xmldsig";
private static String schemaLocation =
"schema/saml/v2/xmldsig-core-schema.xsd";
@@ -150,6 +154,13 @@
{
if(nodeToBeSigned == null)
throw new IllegalArgumentException("Node to be signed is null");
+ if(trace)
+ {
+ try
+ {
+ log.trace("Document to be signed=" +
DocumentUtil.getDocumentAsString(doc));
+ }catch (Exception e) {}
+ }
//Let us create a new Document
Document newDoc = DocumentUtil.createDocument();
//Import the node
@@ -186,6 +197,13 @@
String signatureMethod,
String referenceURI) throws GeneralSecurityException, MarshalException,
XMLSignatureException
{
+ if(trace)
+ {
+ try
+ {
+ log.trace("Document to be signed=" +
DocumentUtil.getDocumentAsString(doc));
+ }catch (Exception e) {}
+ }
PrivateKey signingKey = keyPair.getPrivate();
PublicKey publicKey = keyPair.getPublic();
@@ -228,6 +246,7 @@
* @throws MarshalException
* @throws XMLSignatureException
*/
+ @SuppressWarnings("unchecked")
public static boolean validate(Document signedDoc, Key publicKey) throws
MarshalException, XMLSignatureException
{
NodeList nl = signedDoc.getElementsByTagNameNS(XMLSignature.XMLNS,
"Signature");
@@ -240,6 +259,18 @@
XMLSignature signature = fac.unmarshalXMLSignature(valContext);
boolean coreValidity = signature.validate(valContext);
+ if(trace && !coreValidity)
+ {
+ boolean sv = signature.getSignatureValue().validate(valContext);
+ log.trace("Signature validation status: " + sv);
+
+ List<Reference> references = signature.getSignedInfo().getReferences();
+ for(Reference ref:references)
+ {
+ log.trace("[Ref id=" + ref.getId() +":uri=" +
ref.getURI() +
+ "]validity status:" + ref.validate(valContext));
+ }
+ }
return coreValidity;
}