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