You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2011/06/14 16:25:21 UTC

svn commit: r1135604 - /webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/ext/builder/SAML1ComponentBuilder.java

Author: coheigea
Date: Tue Jun 14 14:25:20 2011
New Revision: 1135604

URL: http://svn.apache.org/viewvc?rev=1135604&view=rev
Log:
Added support to create an AudienceRestrictionConditions element to a SAML 1.1 assertion

Modified:
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/ext/builder/SAML1ComponentBuilder.java

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/ext/builder/SAML1ComponentBuilder.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/ext/builder/SAML1ComponentBuilder.java?rev=1135604&r1=1135603&r2=1135604&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/ext/builder/SAML1ComponentBuilder.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/ext/builder/SAML1ComponentBuilder.java Tue Jun 14 14:25:20 2011
@@ -41,6 +41,8 @@ import org.opensaml.saml1.core.Assertion
 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.AudienceRestrictionCondition;
 import org.opensaml.saml1.core.AuthenticationStatement;
 import org.opensaml.saml1.core.AuthorizationDecisionStatement;
 import org.opensaml.saml1.core.Conditions;
@@ -73,6 +75,10 @@ public class SAML1ComponentBuilder {
     
     private static SAMLObjectBuilder<Conditions> conditionsV1Builder;
     
+    private static SAMLObjectBuilder<AudienceRestrictionCondition> audienceRestrictionV1Builder;
+    
+    private static SAMLObjectBuilder<Audience> audienceV1Builder;
+    
     private static SAMLObjectBuilder<AuthenticationStatement> authenticationStatementV1Builder;
     
     private static SAMLObjectBuilder<Subject> subjectV1Builder;
@@ -260,8 +266,41 @@ public class SAML1ComponentBuilder {
             conditions.setNotBefore(newNotBefore);
             conditions.setNotOnOrAfter(newNotBefore.plusMinutes(tokenPeriodMinutes));
         }
+        
+        if (conditionsBean.getAudienceURI() != null) {
+            AudienceRestrictionCondition audienceRestriction = 
+                createSamlv1AudienceRestriction(conditionsBean.getAudienceURI());
+            conditions.getAudienceRestrictionConditions().add(audienceRestriction);
+        }
+        
         return conditions;
     }
+    
+    /**
+     * Create an AudienceRestrictionCondition object
+     *
+     * @param audienceURI of type String
+     * @return an AudienceRestrictionCondition object
+     */
+    @SuppressWarnings("unchecked")
+    public static AudienceRestrictionCondition 
+    createSamlv1AudienceRestriction(String audienceURI) {
+        if (audienceRestrictionV1Builder == null) {
+            audienceRestrictionV1Builder = (SAMLObjectBuilder<AudienceRestrictionCondition>) 
+                builderFactory.getBuilder(AudienceRestrictionCondition.DEFAULT_ELEMENT_NAME);
+        }
+        if (audienceV1Builder == null) {
+            audienceV1Builder = (SAMLObjectBuilder<Audience>) 
+                builderFactory.getBuilder(Audience.DEFAULT_ELEMENT_NAME);
+        }
+       
+        AudienceRestrictionCondition audienceRestriction = 
+            audienceRestrictionV1Builder.buildObject();
+        Audience audience = audienceV1Builder.buildObject();
+        audience.setUri(audienceURI);
+        audienceRestriction.getAudiences().add(audience);
+        return audienceRestriction;
+    }
 
     /**
      * Create SAML 1.1 authentication statement(s)