Author: prabath
Date: Tue Apr  1 03:14:59 2008
New Revision: 15442

Log:

adding AudienceRestriction

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

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
        Tue Apr  1 03:14:59 2008
@@ -18,10 +18,12 @@
 import org.opensaml.saml1.core.Attribute;
 import org.opensaml.saml1.core.AttributeStatement;
 import org.opensaml.saml1.core.AttributeValue;
+import org.opensaml.saml1.core.Audience;
 import org.opensaml.saml1.core.Conditions;
 import org.opensaml.saml1.core.ConfirmationMethod;
 import org.opensaml.saml1.core.Subject;
 import org.opensaml.saml1.core.SubjectConfirmation;
+import org.opensaml.saml1.core.AudienceRestrictionCondition;
 import org.opensaml.xml.Configuration;
 import org.opensaml.xml.XMLObject;
 import org.opensaml.xml.XMLObjectBuilder;
@@ -38,6 +40,7 @@
 import org.opensaml.xml.signature.Signer;
 import org.opensaml.xml.signature.X509Certificate;
 import org.opensaml.xml.signature.X509Data;
+import org.opensaml.xml.validation.ValidationException;
 import org.w3c.dom.Element;
 import org.wso2.solutions.identity.IdentityConstants;
 import org.wso2.solutions.identity.IdentityProviderException;
@@ -53,6 +56,7 @@
     protected AttributeStatement attributeStmt = null;
     protected List signatureList = new ArrayList();
     protected Element signedAssertion = null;
+    protected String appilesTo = null;
 
     public static final String CONF_KEY = 
"urn:oasis:names:tc:SAML:1.0:cm:holder-of-key";
 
@@ -74,6 +78,10 @@
 
         Map mapClaims = ipData.getRequestedClaims();
 
+        if (rahasData.getAppliesToAddress() != null) {
+            appilesTo = rahasData.getAppliesToAddress();
+        }
+
         Iterator ite = mapClaims.values().iterator();
 
         while (ite.hasNext()) {
@@ -118,12 +126,18 @@
         ServerConfiguration config = ServerConfiguration.getInstance();
         String host = "http://"; + config.getFirstProperty("HostName");
         assertion.setIssuer(host);
-        /*
-         * TODO : is this needed ??? AudienceRestriction audience =
-         * (AudienceRestriction)
-         * 
SAMLTokenDirector.buildXMLObject(AudienceRestriction.DEFAULT_ELEMENT_NAME);
-         * audience. conditions.getAudienceRestrictionConditions()
-         */
+        assertion.setIssueInstant(new DateTime());
+
+        if (appilesTo != null) {
+            Audience audience = (Audience) 
buildXMLObject(Audience.DEFAULT_ELEMENT_NAME);
+            audience.setUri(appilesTo);
+            AudienceRestrictionCondition audienceRestrictions = 
(AudienceRestrictionCondition) 
buildXMLObject(AudienceRestrictionCondition.DEFAULT_ELEMENT_NAME);
+            audienceRestrictions.getAudiences().add(audience);
+
+            conditions.getAudienceRestrictionConditions().add(
+                    audienceRestrictions);
+        }
+
         assertion.setConditions(conditions);
 
         assertion.getAttributeStatements().add(this.attributeStmt);

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
        Tue Apr  1 03:14:59 2008
@@ -14,6 +14,8 @@
 import org.apache.xml.security.c14n.Canonicalizer;
 import org.apache.xml.security.utils.Base64;
 import org.joda.time.DateTime;
+import org.opensaml.saml2.core.Audience;
+import org.opensaml.saml2.core.AudienceRestriction;
 import org.opensaml.saml2.core.Assertion;
 import org.opensaml.saml2.core.Attribute;
 import org.opensaml.saml2.core.AttributeStatement;
@@ -56,6 +58,7 @@
     protected AttributeStatement attributeStmt = null;
     protected List signatureList = new ArrayList();
     protected Element signedAssertion = null;
+    protected String appilesTo = null;
 
     public static final String CONF_KEY = 
"urn:oasis:names:tc:SAML:2.0:cm:holder-of-key";
 
@@ -67,6 +70,10 @@
         attributeStmt = (AttributeStatement) 
buildXMLObject(AttributeStatement.DEFAULT_ELEMENT_NAME);
 
         Map mapClaims = ipData.getRequestedClaims();
+        
+        if (rahasData.getAppliesToAddress() != null) {
+            appilesTo = rahasData.getAppliesToAddress();
+        }
 
         Iterator ite = mapClaims.values().iterator();
 
@@ -128,12 +135,18 @@
         Issuer issuer = (Issuer) buildXMLObject(Issuer.DEFAULT_ELEMENT_NAME);
         issuer.setValue(host);
         assertion.setIssuer(issuer);
-        /*
-         * TODO : is this needed ??? AudienceRestriction audience =
-         * (AudienceRestriction)
-         * 
SAMLTokenDirector.buildXMLObject(AudienceRestriction.DEFAULT_ELEMENT_NAME);
-         * audience. conditions.getAudienceRestrictionConditions()
-         */
+        assertion.setIssueInstant(new DateTime());
+
+        if (appilesTo != null) {
+            Audience audience = (Audience) 
buildXMLObject(Audience.DEFAULT_ELEMENT_NAME);
+            audience.setAudienceURI(appilesTo);
+            AudienceRestriction audienceRestrictions = (AudienceRestriction) 
buildXMLObject(AudienceRestriction.DEFAULT_ELEMENT_NAME);
+            audienceRestrictions.getAudiences().add(audience);
+
+            conditions.getAudienceRestrictions().add(
+                    audienceRestrictions);
+        }
+
         assertion.setConditions(conditions);
 
         assertion.getAttributeStatements().add(this.attributeStmt);

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

Reply via email to