Author: dimuthul
Date: Wed Jan 30 00:44:29 2008
New Revision: 13166

Log:

Adding changes.



Added:
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SignKeyDataHolder.java
Removed:
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/KeyDataHolder.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/SAML2TokenBuilder.java
   
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAMLTokenDirector.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
        Wed Jan 30 00:44:29 2008
@@ -1,5 +1,7 @@
 package org.wso2.solutions.identity.sts.saml;
 
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -56,11 +58,14 @@
         try {
             Class clazz = Configuration.class;
             XMLConfigurator configurator = new XMLConfigurator();
-            String[] providerConfigs = { "conf/saml1-assertion-config.xml", };
+            String[] providerConfigs = {"conf/saml1-assertion-config.xml"};
             for (String config : providerConfigs) {
-                configurator.load(clazz.getResourceAsStream(config));
+                configurator.load(new FileInputStream(config));
             }
-        } catch (ConfigurationException e) {
+        }catch (FileNotFoundException e){
+            //TODO
+            e.printStackTrace();
+        }catch (ConfigurationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
@@ -71,7 +76,6 @@
         if (log.isDebugEnabled()) {
             log.debug("Begin SAML statement creation.");
         }
-
         attributeStmt = (AttributeStatement) 
buildXMLObject(AttributeStatement.DEFAULT_ELEMENT_NAME);
 
         Subject subject = (Subject) 
buildXMLObject(Subject.DEFAULT_ELEMENT_NAME);

Modified: 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAML2TokenBuilder.java
==============================================================================
--- 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAML2TokenBuilder.java
        (original)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAML2TokenBuilder.java
        Wed Jan 30 00:44:29 2008
@@ -18,10 +18,9 @@
     
     public void createSAMLAssertion(DateTime notAfter, DateTime notBefore,
             String assertionId) throws IdentityProviderException{
-        
+    
    //     String[] confirmationMethods = new String[] { 
SAMLSubject.CONF_HOLDER_KEY };
-
-      //  SAMLSubject subject = new SAMLSubject(null, Arrays//
+     //  SAMLSubject subject = new SAMLSubject(null, Arrays//
         //        .asList(confirmationMethods), null, null);
 
 

Modified: 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAMLTokenDirector.java
==============================================================================
--- 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAMLTokenDirector.java
        (original)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SAMLTokenDirector.java
        Wed Jan 30 00:44:29 2008
@@ -39,7 +39,7 @@
 
     public Element createSAMLToken(DateTime notBefore, DateTime notAfter, 
String assertionId) throws IdentityProviderException {
         
-        KeyDataHolder keyDataHolder = KeyDataHolder.getInstance();
+        SignKeyDataHolder keyDataHolder = SignKeyDataHolder.getInstance();
         String signatureAlgorithm = keyDataHolder.getSignatureAlgorithm();
         
         Element elem = null;

Added: 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SignKeyDataHolder.java
==============================================================================
--- (empty file)
+++ 
trunk/solutions/identity/modules/identity-provider/src/main/java/org/wso2/solutions/identity/sts/saml/SignKeyDataHolder.java
        Wed Jan 30 00:44:29 2008
@@ -0,0 +1,117 @@
+package org.wso2.solutions.identity.sts.saml;
+
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.cert.X509CRL;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
+import java.util.Collection;
+
+import javax.crypto.SecretKey;
+
+import org.apache.xml.security.signature.XMLSignature;
+import org.opensaml.xml.security.credential.Credential;
+import org.opensaml.xml.security.credential.CredentialContextSet;
+import org.opensaml.xml.security.credential.UsageType;
+import org.opensaml.xml.security.x509.X509Credential;
+import org.wso2.solutions.identity.IdentityProviderException;
+import org.wso2.solutions.identity.sts.KeyUtil;
+import org.wso2.utils.ServerConfiguration;
+
+public class SignKeyDataHolder implements X509Credential {
+
+    private String signatureAlgorithm = null;
+    
+    private static SignKeyDataHolder instance = null;
+    
+    private X509Certificate[] issuerCerts = null;
+    
+    private PrivateKey issuerPK = null;
+    
+    
+    public static SignKeyDataHolder getInstance() throws 
IdentityProviderException{
+        if(instance == null){
+            instance = new SignKeyDataHolder();
+        }
+        return instance;
+    }
+    
+    private SignKeyDataHolder() throws IdentityProviderException {
+        //do once - because this is a expensive operation
+        ServerConfiguration config = ServerConfiguration.getInstance();
+        String host = "http://"; + config.getFirstProperty("HostName");
+
+        String keyAlias = ServerConfiguration.getInstance().getFirstProperty(
+                "Security.KeyStore.KeyAlias");
+        issuerPK = (PrivateKey)KeyUtil.getPrivateKey(keyAlias);
+        
+        issuerCerts = KeyUtil
+                .getServiceCertificateChain(keyAlias);
+       
+        signatureAlgorithm = XMLSignature.ALGO_ID_SIGNATURE_RSA;
+        String pubKeyAlgo = issuerCerts[0].getPublicKey().getAlgorithm();
+        if (pubKeyAlgo.equalsIgnoreCase("DSA")) {
+            signatureAlgorithm = XMLSignature.ALGO_ID_SIGNATURE_DSA;
+        }
+
+    }
+    
+    public String getSignatureAlgorithm() {
+        return signatureAlgorithm;
+    }
+
+    public void setSignatureAlgorithm(String signatureAlgorithm) {
+        this.signatureAlgorithm = signatureAlgorithm;
+    }
+
+    public Collection<X509CRL> getCRLs() {
+        return null;
+    }
+
+    public X509Certificate getEntityCertificate() {
+        return issuerCerts[0];
+    }
+
+    public Collection<X509Certificate> getEntityCertificateChain() {
+        return Arrays.asList(issuerCerts);
+    }
+
+    public CredentialContextSet getCredentalContextSet() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Class<? extends Credential> getCredentialType() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public String getEntityId() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Collection<String> getKeyNames() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public PrivateKey getPrivateKey() {
+       return issuerPK;
+    }
+
+    public PublicKey getPublicKey() {
+       return issuerCerts[0].getPublicKey();
+    }
+
+    public SecretKey getSecretKey() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public UsageType getUsageType() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}

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

Reply via email to