Author: dimuthul
Date: Mon Feb 18 01:50:03 2008
New Revision: 13849

Log:

Fixing the KeyInfo problem.



Modified:
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAML1TokenBuilder.java

Modified: 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAML1TokenBuilder.java
==============================================================================
--- 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAML1TokenBuilder.java
        (original)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAML1TokenBuilder.java
        Mon Feb 18 01:50:03 2008
@@ -1,5 +1,6 @@
 package org.wso2.solutions.identity.sts.saml;
 
+import java.security.cert.CertificateEncodingException;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -12,6 +13,7 @@
 import org.apache.rahas.RahasData;
 import org.apache.xml.security.c14n.Canonicalizer;
 import org.apache.xml.security.signature.XMLSignature;
+import org.apache.xml.security.utils.Base64;
 import org.joda.time.DateTime;
 import org.opensaml.saml1.core.Assertion;
 import org.opensaml.saml1.core.Attribute;
@@ -31,8 +33,11 @@
 import org.opensaml.xml.schema.XSString;
 import org.opensaml.xml.schema.impl.XSStringBuilder;
 import org.opensaml.xml.security.x509.X509Credential;
+import org.opensaml.xml.signature.KeyInfo;
 import org.opensaml.xml.signature.Signature;
 import org.opensaml.xml.signature.Signer;
+import org.opensaml.xml.signature.X509Certificate;
+import org.opensaml.xml.signature.X509Data;
 import org.w3c.dom.Element;
 import org.wso2.solutions.identity.IdentityConstants;
 import org.wso2.solutions.identity.IdentityProviderException;
@@ -150,6 +155,20 @@
         signature.setSignatureAlgorithm(XMLSignature.ALGO_ID_SIGNATURE_RSA);
         signature
                 
.setCanonicalizationAlgorithm(Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);
+        
+        try {
+            KeyInfo keyInfo = 
(KeyInfo)buildXMLObject(KeyInfo.DEFAULT_ELEMENT_NAME);
+            X509Data data = (X509Data) 
buildXMLObject(X509Data.DEFAULT_ELEMENT_NAME);
+            X509Certificate cert = (X509Certificate) 
buildXMLObject(X509Certificate.DEFAULT_ELEMENT_NAME);
+            String value = 
Base64.encode(cred.getEntityCertificate().getEncoded());
+            cert.setValue(value);
+            data.getX509Certificates().add(cert);
+            keyInfo.getX509Datas().add(data);
+            signature.setKeyInfo(keyInfo);
+        } catch (CertificateEncodingException e) {
+           throw new IdentityProviderException("errorGettingCert");
+        }
+        
         assertion.setSignature(signature);
         signatureList.add(signature);
     }

_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev

Reply via email to