[jboss-identity-commits] JBoss Identity SVN: r208 - in identity-federation/trunk: identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/request and 11 other directories.

jboss-identity-commits at lists.jboss.org jboss-identity-commits at lists.jboss.org
Thu Jan 8 17:55:31 EST 2009


Author: anil.saldhana at jboss.com
Date: 2009-01-08 17:55:31 -0500 (Thu, 08 Jan 2009)
New Revision: 208

Added:
   identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/
   identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnRequestFactory.java
   identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnResponseFactory.java
   identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLBaseFactory.java
   identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/SecurityActions.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/ObjectFactory.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLAuthzDecisionStatementType.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLPolicyStatementType.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/package-info.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/ObjectFactory.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLAuthzDecisionQueryType.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLPolicyQueryType.java
   identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/package-info.java
   identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-assertion-schema-os.xsd
   identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-protocol-schema-os.xsd
Removed:
   identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/factories/
Modified:
   identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/request/SAML2Request.java
   identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/response/SAML2Response.java
   identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java
   identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/DeflateEncodingDecodingUnitTestCase.java
   identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SAML2AuthnResponseUnitTestCase.java
   identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SignatureValidationUnitTestCase.java
   identity-federation/trunk/identity-fed-core/.classpath
Log:
handle xacml

Modified: identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/request/SAML2Request.java
===================================================================
--- identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/request/SAML2Request.java	2009-01-08 13:17:48 UTC (rev 207)
+++ identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/request/SAML2Request.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -28,8 +28,8 @@
 import javax.xml.bind.JAXBElement;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
-
-import org.jboss.identity.federation.api.saml.v2.factories.JBossSAMLAuthnRequestFactory;
+ 
+import org.jboss.identity.federation.core.saml.v2.factories.JBossSAMLAuthnRequestFactory;
 import org.jboss.identity.federation.saml.v2.protocol.AuthnRequestType;
 
 /**

Modified: identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/response/SAML2Response.java
===================================================================
--- identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/response/SAML2Response.java	2009-01-08 13:17:48 UTC (rev 207)
+++ identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/saml/v2/response/SAML2Response.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -30,9 +30,9 @@
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
 import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.jboss.identity.federation.api.saml.v2.factories.JBossSAMLAuthnResponseFactory;
-import org.jboss.identity.federation.api.saml.v2.factories.JBossSAMLBaseFactory;
+ 
+import org.jboss.identity.federation.core.saml.v2.factories.JBossSAMLAuthnResponseFactory;
+import org.jboss.identity.federation.core.saml.v2.factories.JBossSAMLBaseFactory;
 import org.jboss.identity.federation.core.saml.v2.holders.IDPInfoHolder;
 import org.jboss.identity.federation.core.saml.v2.holders.IssuerInfoHolder;
 import org.jboss.identity.federation.core.saml.v2.holders.SPInfoHolder;

Modified: identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java
===================================================================
--- identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java	2009-01-08 13:17:48 UTC (rev 207)
+++ identity-federation/trunk/identity-fed-api/src/main/java/org/jboss/identity/federation/api/util/XMLSignatureUtil.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -51,9 +51,9 @@
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
-
-import org.jboss.identity.federation.api.saml.v2.factories.JBossSAMLBaseFactory;
+ 
 import org.jboss.identity.federation.api.saml.v2.request.SAML2Request;
+import org.jboss.identity.federation.core.saml.v2.factories.JBossSAMLBaseFactory;
 import org.jboss.identity.federation.saml.v2.protocol.AuthnRequestType;
 import org.jboss.identity.xmlsec.w3.xmldsig.ObjectFactory;
 import org.jboss.identity.xmlsec.w3.xmldsig.SignatureType;

Modified: identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/DeflateEncodingDecodingUnitTestCase.java
===================================================================
--- identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/DeflateEncodingDecodingUnitTestCase.java	2009-01-08 13:17:48 UTC (rev 207)
+++ identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/DeflateEncodingDecodingUnitTestCase.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -26,11 +26,11 @@
 
 import junit.framework.TestCase;
 
-import org.jboss.identity.federation.api.saml.v2.common.IDGenerator;
-import org.jboss.identity.federation.api.saml.v2.factories.JBossSAMLAuthnRequestFactory;
+import org.jboss.identity.federation.api.saml.v2.common.IDGenerator; 
 import org.jboss.identity.federation.api.saml.v2.request.SAML2Request;
 import org.jboss.identity.federation.api.util.Base64;
 import org.jboss.identity.federation.api.util.DeflateUtil;
+import org.jboss.identity.federation.core.saml.v2.factories.JBossSAMLAuthnRequestFactory;
 import org.jboss.identity.federation.saml.v2.protocol.AuthnRequestType;
 
 /**

Modified: identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SAML2AuthnResponseUnitTestCase.java
===================================================================
--- identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SAML2AuthnResponseUnitTestCase.java	2009-01-08 13:17:48 UTC (rev 207)
+++ identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SAML2AuthnResponseUnitTestCase.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -25,10 +25,10 @@
 
 import junit.framework.TestCase;
 
-import org.jboss.identity.federation.api.saml.v2.common.IDGenerator;
-import org.jboss.identity.federation.api.saml.v2.factories.JBossSAMLAuthnResponseFactory;
+import org.jboss.identity.federation.api.saml.v2.common.IDGenerator; 
 import org.jboss.identity.federation.api.saml.v2.response.SAML2Response;
 import org.jboss.identity.federation.core.saml.v2.constants.JBossSAMLURIConstants;
+import org.jboss.identity.federation.core.saml.v2.factories.JBossSAMLAuthnResponseFactory;
 import org.jboss.identity.federation.core.saml.v2.holders.IDPInfoHolder;
 import org.jboss.identity.federation.core.saml.v2.holders.IssuerInfoHolder;
 import org.jboss.identity.federation.core.saml.v2.holders.SPInfoHolder;

Modified: identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SignatureValidationUnitTestCase.java
===================================================================
--- identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SignatureValidationUnitTestCase.java	2009-01-08 13:17:48 UTC (rev 207)
+++ identity-federation/trunk/identity-fed-api/src/test/java/org/jboss/test/identity/federation/api/saml/v2/SignatureValidationUnitTestCase.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -29,9 +29,9 @@
 import javax.xml.crypto.dsig.DigestMethod;
 import javax.xml.crypto.dsig.SignatureMethod;
 
-import org.jboss.identity.federation.api.saml.v2.common.IDGenerator;
-import org.jboss.identity.federation.api.saml.v2.factories.JBossSAMLAuthnRequestFactory;
+import org.jboss.identity.federation.api.saml.v2.common.IDGenerator; 
 import org.jboss.identity.federation.api.util.XMLSignatureUtil;
+import org.jboss.identity.federation.core.saml.v2.factories.JBossSAMLAuthnRequestFactory;
 import org.jboss.identity.federation.core.saml.v2.util.SignatureUtil;
 import org.jboss.identity.federation.saml.v2.protocol.AuthnRequestType;
 import org.junit.Test;

Modified: identity-federation/trunk/identity-fed-core/.classpath
===================================================================
--- identity-federation/trunk/identity-fed-core/.classpath	2009-01-08 13:17:48 UTC (rev 207)
+++ identity-federation/trunk/identity-fed-core/.classpath	2009-01-08 22:55:31 UTC (rev 208)
@@ -7,5 +7,7 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/identity-fed-model"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
+	<classpathentry kind="var" path="M2_REPO/sun-jaxb/jaxb-api/2.1.9/jaxb-api-2.1.9.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-xacml/2.0.3-SNAPSHOT/jboss-xacml-2.0.3-SNAPSHOT.jar"/>
 	<classpathentry kind="output" path="target-eclipse"/>
 </classpath>

Added: identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnRequestFactory.java
===================================================================
--- identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnRequestFactory.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnRequestFactory.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,125 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors. 
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.identity.federation.core.saml.v2.factories;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.jboss.identity.federation.core.saml.v2.constants.JBossSAMLConstants;
+import org.jboss.identity.federation.core.saml.v2.util.XMLTimeUtil;
+import org.jboss.identity.federation.saml.v2.assertion.NameIDType;
+import org.jboss.identity.federation.saml.v2.protocol.AuthnRequestType;
+import org.jboss.identity.federation.saml.v2.protocol.ObjectFactory;
+
+/**
+ * Factory for SAML2 AuthnRequest
+ * @author Anil.Saldhana at redhat.com
+ * @since Dec 9, 2008
+ */
+public class JBossSAMLAuthnRequestFactory
+{ 
+   private static String pkgName = "org.jboss.identity.federation.saml.v2.protocol";
+   private static String schemaLocation = "schema/saml/v2/saml-schema-protocol-2.0.xsd";
+
+   private static ObjectFactory protocolObjectFactory = new ObjectFactory();
+   
+   /**
+    * Create a AuthnRequestType
+    * @return
+    */
+   public static AuthnRequestType createAuthnRequestType()
+   {
+      AuthnRequestType authnRequestType = protocolObjectFactory.createAuthnRequestType();
+      return authnRequestType;
+   }
+   
+   /**
+    * Create an AuthnRequestType
+    * @param id Id of the request
+    * @param assertionConsumerURL URL of the requestor where the response assertion is requested
+    * @param issuerValue URL of the issuer
+    * @return
+    * @throws Exception
+    */
+   public static AuthnRequestType createAuthnRequestType(String id, 
+         String assertionConsumerURL, String destination, String issuerValue) throws Exception
+   {
+      XMLGregorianCalendar issueInstant = XMLTimeUtil.getIssueInstant();
+      
+      AuthnRequestType authnRequest = protocolObjectFactory.createAuthnRequestType();
+      authnRequest.setID(id);
+      authnRequest.setVersion(JBossSAMLConstants.VERSION_2_0.get());
+      authnRequest.setAssertionConsumerServiceURL(assertionConsumerURL);
+      authnRequest.setDestination(destination);
+      authnRequest.setIssueInstant(issueInstant);
+      
+      //Create an issuer 
+      NameIDType issuer = JBossSAMLBaseFactory.createNameID();
+      issuer.setValue(issuerValue);
+      
+      authnRequest.setIssuer(issuer);
+      
+      return authnRequest;
+      
+   }
+   
+   /**
+    * Create a JAXBElement for the AuthnRequestType
+    * @param authnRequestType
+    * @return
+    */
+   public static JAXBElement<AuthnRequestType> createAuthnRequestType(AuthnRequestType authnRequestType)
+   {
+      return protocolObjectFactory.createAuthnRequest(authnRequestType);
+   } 
+   
+   /**
+    * Get the Object Factory useful for dealing with SAML2 requests
+    * @return
+    */
+   public static ObjectFactory getObjectFactory()
+   {
+      return protocolObjectFactory;
+   }
+   
+   /**
+    * Get the validating marshaller
+    * @return
+    * @throws Exception
+    */
+   public static Marshaller getValidatingMarshaller() throws Exception
+   {
+      return JBossSAMLBaseFactory.getValidatingMarshaller(pkgName, schemaLocation); 
+   }
+   
+   /**
+    * Get the validating unmarshaller
+    * @return
+    * @throws Exception
+    */
+   public static Unmarshaller getValidatingUnmarshaller() throws Exception
+   {
+      return JBossSAMLBaseFactory.getValidatingUnmarshaller(pkgName, schemaLocation);
+   }
+}
\ No newline at end of file

Added: identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnResponseFactory.java
===================================================================
--- identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnResponseFactory.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLAuthnResponseFactory.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors. 
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.identity.federation.core.saml.v2.factories;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.jboss.identity.federation.core.saml.v2.holders.IDPInfoHolder;
+import org.jboss.identity.federation.core.saml.v2.holders.IssuerInfoHolder;
+import org.jboss.identity.federation.core.saml.v2.holders.SPInfoHolder;
+import org.jboss.identity.federation.core.saml.v2.util.XMLTimeUtil;
+import org.jboss.identity.federation.saml.v2.assertion.AssertionType;
+import org.jboss.identity.federation.saml.v2.assertion.NameIDType;
+import org.jboss.identity.federation.saml.v2.assertion.SubjectConfirmationDataType;
+import org.jboss.identity.federation.saml.v2.assertion.SubjectConfirmationType;
+import org.jboss.identity.federation.saml.v2.assertion.SubjectType;
+import org.jboss.identity.federation.saml.v2.protocol.ObjectFactory;
+import org.jboss.identity.federation.saml.v2.protocol.ResponseType;
+import org.jboss.identity.federation.saml.v2.protocol.StatusCodeType;
+import org.jboss.identity.federation.saml.v2.protocol.StatusType;
+
+/**
+ * Factory for the SAML v2 Authn Response
+ * @author Anil.Saldhana at redhat.com
+ * @since Dec 9, 2008
+ */
+public class JBossSAMLAuthnResponseFactory
+{
+   private static String pkgName = "org.jboss.identity.federation.saml.v2.protocol";
+   private static String schemaLocation = "schema/saml/v2/saml-schema-protocol-2.0.xsd";
+   
+   private static ObjectFactory protocolObjectFactory = new ObjectFactory();
+   
+   /**
+    * Create a StatusType given the status code uri
+    * @param statusCodeURI
+    * @return
+    */
+   public static StatusType createStatusType(String statusCodeURI)
+   {
+      StatusCodeType sct = protocolObjectFactory.createStatusCodeType(); 
+      sct.setValue(statusCodeURI);
+      
+      StatusType statusType = protocolObjectFactory.createStatusType();
+      statusType.setStatusCode(sct);
+      return statusType;
+   }
+   
+   /**
+    * Create a ResponseType
+    * @param ID id of the response
+    * @param sp holder with the information about the Service Provider
+    * @param idp holder with the information on the Identity Provider
+    * @param issuerInfo holder with information on the issuer
+    * @return
+    * @throws Exception
+    */
+   public static ResponseType createResponseType(String ID, SPInfoHolder sp, IDPInfoHolder idp, IssuerInfoHolder issuerInfo) throws Exception
+   {
+      ResponseType responseType = protocolObjectFactory.createResponseType();
+      responseType.setVersion(issuerInfo.getSamlVersion());
+      
+      //ID
+      responseType.setID(ID);
+      //InResponseTo ID
+      responseType.setInResponseTo(sp.getRequestID());
+      //Destination
+      String responseDestinationURI = sp.getResponseDestinationURI();
+      responseType.setDestination(responseDestinationURI);
+      
+      //Issuer 
+      NameIDType issuer = issuerInfo.getIssuer();
+      responseType.setIssuer(issuer);
+      
+      //Status
+      String statusCode = issuerInfo.getStatusCode();
+      if(statusCode == null)
+         throw new IllegalArgumentException("issuerInfo missing status code");
+      
+      responseType.setStatus(createStatusType(statusCode) );
+      
+      XMLGregorianCalendar issueInstant = XMLTimeUtil.getIssueInstant(); 
+      
+      //IssueInstant
+      responseType.setIssueInstant(issueInstant);
+      
+      //Create an assertion
+      AssertionType assertionType = JBossSAMLBaseFactory.createAssertion();
+      assertionType.setID("ID_" + JBossSAMLBaseFactory.createUUID());
+      assertionType.setVersion(issuerInfo.getSamlVersion());
+      assertionType.setIssueInstant(issueInstant);
+      
+      assertionType.setIssuer(issuer);
+      
+      //Create assertion -> subject
+      SubjectType subjectType = JBossSAMLBaseFactory.createSubject();
+      
+      //subject -> nameid
+      NameIDType nameIDType = JBossSAMLBaseFactory.createNameID();
+      nameIDType.setFormat(idp.getNameIDFormat());
+      nameIDType.setValue(idp.getNameIDFormatValue());
+      
+      JAXBElement<NameIDType> jaxbNameIDType = JBossSAMLBaseFactory.createNameID(nameIDType);
+      subjectType.getContent().add(jaxbNameIDType);
+      
+      SubjectConfirmationType subjectConfirmation = 
+            JBossSAMLBaseFactory.createSubjectConfirmation(idp.getSubjectConfirmationMethod());
+      SubjectConfirmationDataType subjectConfirmationData = 
+           JBossSAMLBaseFactory.createSubjectConfirmationData(sp.getRequestID(), 
+                 responseDestinationURI, issueInstant);
+      subjectConfirmation.setSubjectConfirmationData(subjectConfirmationData);
+      
+      JAXBElement<SubjectConfirmationType> jaxbSubjectConfirmationType = 
+         JBossSAMLBaseFactory.createSubjectConfirmation(subjectConfirmation);
+      
+      subjectType.getContent().add(jaxbSubjectConfirmationType);
+      
+      assertionType.setSubject(subjectType);
+      
+      responseType.getAssertionOrEncryptedAssertion().add(assertionType);
+      return responseType;
+   } 
+   
+   /**
+    * Return the JAXB2 object factory (mainly for invocation chaining)
+    * @return
+    */
+   public static ObjectFactory getObjectFactory()
+   {
+      return protocolObjectFactory;
+   }
+   
+   /**
+    * Get the JAXB2 marshaller
+    * @return
+    * @throws Exception
+    */
+   public static Marshaller getValidatingMarshaller() throws Exception
+   {
+      return JBossSAMLBaseFactory.getValidatingMarshaller(pkgName, schemaLocation);
+   }
+
+   /**
+    * Get the JAXB2 Unmarshaller
+    * @return
+    * @throws Exception
+    */
+   public static Unmarshaller getValidatingUnmarshaller() throws Exception
+   {
+      return JBossSAMLBaseFactory.getValidatingUnmarshaller(pkgName, schemaLocation);
+   }
+}
\ No newline at end of file

Added: identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLBaseFactory.java
===================================================================
--- identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLBaseFactory.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/JBossSAMLBaseFactory.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,219 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors. 
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.identity.federation.core.saml.v2.factories;
+
+import java.net.URL;
+
+import javax.xml.XMLConstants;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.datatype.XMLGregorianCalendar;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+
+import org.jboss.identity.federation.core.saml.v2.constants.JBossSAMLURIConstants;
+import org.jboss.identity.federation.saml.v2.assertion.AssertionType;
+import org.jboss.identity.federation.saml.v2.assertion.AttributeStatementType;
+import org.jboss.identity.federation.saml.v2.assertion.AttributeType;
+import org.jboss.identity.federation.saml.v2.assertion.NameIDType;
+import org.jboss.identity.federation.saml.v2.assertion.ObjectFactory;
+import org.jboss.identity.federation.saml.v2.assertion.SubjectConfirmationDataType;
+import org.jboss.identity.federation.saml.v2.assertion.SubjectConfirmationType;
+import org.jboss.identity.federation.saml.v2.assertion.SubjectType;
+
+/**
+ * Base methods for the factories
+ * @author Anil.Saldhana at redhat.com
+ * @since Dec 9, 2008
+ */
+public class JBossSAMLBaseFactory
+{
+   private static ObjectFactory assertionObjectFactory = new ObjectFactory();
+   
+   public static AssertionType createAssertion()
+   {
+      return assertionObjectFactory.createAssertionType();  
+   }
+   
+   public static AttributeStatementType createAttributeStatement()
+   {
+      return assertionObjectFactory.createAttributeStatementType();
+   }
+   
+   /**
+    * Create an attribute type given a role name
+    * @param roleName
+    * @return
+    */
+   public static AttributeType createAttributeForRole(String roleName)
+   {
+      AttributeType att = assertionObjectFactory.createAttributeType();
+      att.setFriendlyName("role");
+      att.setName("role");
+      att.setNameFormat(JBossSAMLURIConstants.ATTRIBUTE_FORMAT_BASIC.get());
+      
+      //rolename 
+      att.getAttributeValue().add(roleName);
+      
+      return att;
+   }
+   
+   /**
+    * Create an AttributeStatement given an attribute
+    * @param attributeValue
+    * @return
+    */
+   public static AttributeStatementType createAttributeStatement(String attributeValue)
+   {
+      AttributeStatementType attribStatement = assertionObjectFactory.createAttributeStatementType();
+      AttributeType att = assertionObjectFactory.createAttributeType();
+      JAXBElement<Object> attValue = assertionObjectFactory.createAttributeValue(attributeValue);
+      att.getAttributeValue().add(attValue);
+      attribStatement.getAttributeOrEncryptedAttribute().add(att);
+      return attribStatement;
+   }
+   
+   public static NameIDType createNameID()
+   {
+      return assertionObjectFactory.createNameIDType();
+   }
+   
+   public static JAXBElement<NameIDType> createNameID(NameIDType nameIDType)
+   {
+      return assertionObjectFactory.createNameID(nameIDType);
+   }
+   
+   public static SubjectType createSubject()
+   {
+      SubjectType subjectType = assertionObjectFactory.createSubjectType();
+      return subjectType;
+   }
+   
+   public static SubjectConfirmationType createSubjectConfirmation(String method)
+   {
+      SubjectConfirmationType sct = assertionObjectFactory.createSubjectConfirmationType();
+      sct.setMethod(method);
+      return sct;
+   }
+   
+   public static JAXBElement<SubjectConfirmationType> createSubjectConfirmation(SubjectConfirmationType sct)
+   {
+      return assertionObjectFactory.createSubjectConfirmation(sct);
+   }
+   
+   public static SubjectConfirmationDataType createSubjectConfirmationData(String inResponseTo, 
+         String destinationURI, XMLGregorianCalendar issueInstant)
+   {
+      SubjectConfirmationDataType subjectConfirmationData = assertionObjectFactory.createSubjectConfirmationDataType();
+      subjectConfirmationData.setInResponseTo(inResponseTo);
+      subjectConfirmationData.setRecipient(destinationURI);
+      subjectConfirmationData.setNotBefore(issueInstant);
+      subjectConfirmationData.setNotOnOrAfter(issueInstant);
+      
+      return subjectConfirmationData;
+   }
+   
+   /**
+    * Get a UUID String
+    * @return
+    */
+   public static String createUUID()
+   {
+      return java.util.UUID.randomUUID().toString(); 
+   }
+   
+   public static ObjectFactory getObjectFactory()
+   {
+      return assertionObjectFactory;
+   }
+   
+   /**
+    * Return the NameIDType for the issuer
+    * @param issuerID
+    * @return
+    */
+   public static NameIDType getIssuer(String issuerID)
+   {
+      NameIDType nid = assertionObjectFactory.createNameIDType();
+      nid.setValue(issuerID);
+      return nid;
+   }
+   
+  
+   /**
+    * Get the JAXB Marshaller
+    * @param pkgName The package name for the jaxb context
+    * @param schemaLocation location of the schema to validate against 
+    * @return Marshaller
+    * @throws Exception
+    */
+   public static Marshaller getValidatingMarshaller(String pkgName, String schemaLocation)
+   throws Exception
+   {
+      if(pkgName == null)
+         throw new IllegalArgumentException("pkgName is null");
+      
+      JAXBContext jc = JAXBContext.newInstance(pkgName);
+      Marshaller marshaller = jc.createMarshaller();
+      marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
+      //Validate against schema
+      ClassLoader tcl = SecurityActions.getContextClassLoader();
+      URL schemaURL = tcl.getResource(schemaLocation);
+      if(schemaURL == null)
+         throw new IllegalStateException("Schema URL is null:" + schemaLocation);
+      SchemaFactory scFact = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+      Schema schema = scFact.newSchema(schemaURL);
+      marshaller.setSchema(schema); 
+ 
+      return marshaller;
+   }
+   
+   /**
+    * Get the JAXB Unmarshaller
+    * @param pkgName The package name for the jaxb context
+    * @param schemaLocation location of the schema to validate against
+    * @param schemaValidating need a validating schema unmarshaller?
+    * @return unmarshaller
+    * @throws Exception
+    */
+   public static Unmarshaller getValidatingUnmarshaller(String pkgName, String schemaLocation)
+   throws Exception
+   {
+      if(pkgName == null)
+         throw new IllegalArgumentException("pkgName is null");
+      
+      JAXBContext jc = JAXBContext.newInstance(pkgName);
+      Unmarshaller unmarshaller = jc.createUnmarshaller(); 
+      //Validate against schema
+      ClassLoader tcl = SecurityActions.getContextClassLoader();
+      URL schemaURL = tcl.getResource(schemaLocation);
+      if(schemaURL == null)
+         throw new IllegalStateException("Schema URL is null:" + schemaLocation);
+      SchemaFactory scFact = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+      Schema schema = scFact.newSchema(schemaURL);
+      unmarshaller.setSchema(schema); 
+ 
+      return unmarshaller;
+   }
+}
\ No newline at end of file

Added: identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/SecurityActions.java
===================================================================
--- identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/SecurityActions.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-core/src/main/java/org/jboss/identity/federation/core/saml/v2/factories/SecurityActions.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors. 
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.identity.federation.core.saml.v2.factories;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * Privileged Blocks
+ * @author Anil.Saldhana at redhat.com
+ * @since Dec 9, 2008
+ */
+class SecurityActions
+{
+   /**
+    * Get the Thread Context ClassLoader
+    * @return
+    */
+   static ClassLoader getContextClassLoader()
+   {
+      return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+      {
+         public ClassLoader run()
+         {
+            return Thread.currentThread().getContextClassLoader();
+         }
+      });
+   }
+}

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/ObjectFactory.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/ObjectFactory.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/ObjectFactory.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:07:00 PM CST 
+//
+
+
+package org.jboss.identity.federation.saml.v2.profiles.xacml.assertion;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the oasis.xacml._2_0.saml.assertion.schema.os package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _XACMLAuthzDecisionStatement_QNAME = new QName("urn:oasis:xacml:2.0:saml:assertion:schema:os", "XACMLAuthzDecisionStatement");
+    private final static QName _XACMLPolicyStatement_QNAME = new QName("urn:oasis:xacml:2.0:saml:assertion:schema:os", "XACMLPolicyStatement");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: oasis.xacml._2_0.saml.assertion.schema.os
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link XACMLAuthzDecisionStatementType }
+     * 
+     */
+    public XACMLAuthzDecisionStatementType createXACMLAuthzDecisionStatementType() {
+        return new XACMLAuthzDecisionStatementType();
+    }
+
+    /**
+     * Create an instance of {@link XACMLPolicyStatementType }
+     * 
+     */
+    public XACMLPolicyStatementType createXACMLPolicyStatementType() {
+        return new XACMLPolicyStatementType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link XACMLAuthzDecisionStatementType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:oasis:xacml:2.0:saml:assertion:schema:os", name = "XACMLAuthzDecisionStatement")
+    public JAXBElement<XACMLAuthzDecisionStatementType> createXACMLAuthzDecisionStatement(XACMLAuthzDecisionStatementType value) {
+        return new JAXBElement<XACMLAuthzDecisionStatementType>(_XACMLAuthzDecisionStatement_QNAME, XACMLAuthzDecisionStatementType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link XACMLPolicyStatementType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:oasis:xacml:2.0:saml:assertion:schema:os", name = "XACMLPolicyStatement")
+    public JAXBElement<XACMLPolicyStatementType> createXACMLPolicyStatement(XACMLPolicyStatementType value) {
+        return new JAXBElement<XACMLPolicyStatementType>(_XACMLPolicyStatement_QNAME, XACMLPolicyStatementType.class, null, value);
+    }
+
+}

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLAuthzDecisionStatementType.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLAuthzDecisionStatementType.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLAuthzDecisionStatementType.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,103 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:07:00 PM CST 
+//
+
+
+package org.jboss.identity.federation.saml.v2.profiles.xacml.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.identity.federation.saml.v2.assertion.StatementAbstractType;
+import org.jboss.security.xacml.core.model.context.RequestType;
+import org.jboss.security.xacml.core.model.context.ResponseType;
+
+
+/**
+ * <p>Java class for XACMLAuthzDecisionStatementType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="XACMLAuthzDecisionStatementType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:oasis:names:tc:SAML:2.0:assertion}StatementAbstractType">
+ *       &lt;sequence>
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Response"/>
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Request" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "XACMLAuthzDecisionStatementType", propOrder = {
+    "response",
+    "request"
+})
+public class XACMLAuthzDecisionStatementType
+    extends StatementAbstractType
+{
+
+    @XmlElement(name = "Response", namespace = "urn:oasis:names:tc:xacml:2.0:context:schema:os", required = true)
+    protected ResponseType response;
+    @XmlElement(name = "Request", namespace = "urn:oasis:names:tc:xacml:2.0:context:schema:os")
+    protected RequestType request;
+
+    /**
+     * Gets the value of the response property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link ResponseType }
+     *     
+     */
+    public ResponseType getResponse() {
+        return response;
+    }
+
+    /**
+     * Sets the value of the response property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link ResponseType }
+     *     
+     */
+    public void setResponse(ResponseType value) {
+        this.response = value;
+    }
+
+    /**
+     * Gets the value of the request property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link RequestType }
+     *     
+     */
+    public RequestType getRequest() {
+        return request;
+    }
+
+    /**
+     * Sets the value of the request property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link RequestType }
+     *     
+     */
+    public void setRequest(RequestType value) {
+        this.request = value;
+    }
+
+}

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLPolicyStatementType.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLPolicyStatementType.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/XACMLPolicyStatementType.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,87 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:07:00 PM CST 
+//
+
+
+package org.jboss.identity.federation.saml.v2.profiles.xacml.assertion;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlType; 
+
+import org.jboss.identity.federation.saml.v2.assertion.StatementAbstractType;
+import org.jboss.security.xacml.core.model.policy.PolicySetType;
+import org.jboss.security.xacml.core.model.policy.PolicyType;
+
+/**
+ * <p>Java class for XACMLPolicyStatementType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="XACMLPolicyStatementType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:oasis:names:tc:SAML:2.0:assertion}StatementAbstractType">
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}Policy"/>
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}PolicySet"/>
+ *       &lt;/choice>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "XACMLPolicyStatementType", propOrder = {
+    "policyOrPolicySet"
+})
+public class XACMLPolicyStatementType
+    extends StatementAbstractType
+{
+
+    @XmlElements({
+        @XmlElement(name = "PolicySet", namespace = "urn:oasis:names:tc:xacml:2.0:policy:schema:os", type = PolicySetType.class),
+        @XmlElement(name = "Policy", namespace = "urn:oasis:names:tc:xacml:2.0:policy:schema:os", type = PolicyType.class)
+    })
+    protected List<Object> policyOrPolicySet;
+
+    /**
+     * Gets the value of the policyOrPolicySet property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the policyOrPolicySet property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPolicyOrPolicySet().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PolicySetType }
+     * {@link PolicyType }
+     * 
+     * 
+     */
+    public List<Object> getPolicyOrPolicySet() {
+        if (policyOrPolicySet == null) {
+            policyOrPolicySet = new ArrayList<Object>();
+        }
+        return this.policyOrPolicySet;
+    }
+
+}

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/package-info.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/package-info.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/assertion/package-info.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:07:00 PM CST 
+//
+
+ at javax.xml.bind.annotation.XmlSchema(namespace = "urn:oasis:xacml:2.0:saml:assertion:schema:os", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.identity.federation.saml.v2.profiles.xacml.assertion;

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/ObjectFactory.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/ObjectFactory.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/ObjectFactory.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:14:41 PM CST 
+//
+
+
+package org.jboss.identity.federation.saml.v2.profiles.xacml.protocol;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the oasis.xacml._2_0.saml.protocol.schema.os package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _XACMLAuthzDecisionQuery_QNAME = new QName("urn:oasis:xacml:2.0:saml:protocol:schema:os", "XACMLAuthzDecisionQuery");
+    private final static QName _XACMLPolicyQuery_QNAME = new QName("urn:oasis:xacml:2.0:saml:protocol:schema:os", "XACMLPolicyQuery");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: oasis.xacml._2_0.saml.protocol.schema.os
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link XACMLAuthzDecisionQueryType }
+     * 
+     */
+    public XACMLAuthzDecisionQueryType createXACMLAuthzDecisionQueryType() {
+        return new XACMLAuthzDecisionQueryType();
+    }
+
+    /**
+     * Create an instance of {@link XACMLPolicyQueryType }
+     * 
+     */
+    public XACMLPolicyQueryType createXACMLPolicyQueryType() {
+        return new XACMLPolicyQueryType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link XACMLAuthzDecisionQueryType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:oasis:xacml:2.0:saml:protocol:schema:os", name = "XACMLAuthzDecisionQuery")
+    public JAXBElement<XACMLAuthzDecisionQueryType> createXACMLAuthzDecisionQuery(XACMLAuthzDecisionQueryType value) {
+        return new JAXBElement<XACMLAuthzDecisionQueryType>(_XACMLAuthzDecisionQuery_QNAME, XACMLAuthzDecisionQueryType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link XACMLPolicyQueryType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:oasis:xacml:2.0:saml:protocol:schema:os", name = "XACMLPolicyQuery")
+    public JAXBElement<XACMLPolicyQueryType> createXACMLPolicyQuery(XACMLPolicyQueryType value) {
+        return new JAXBElement<XACMLPolicyQueryType>(_XACMLPolicyQuery_QNAME, XACMLPolicyQueryType.class, null, value);
+    }
+
+}

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLAuthzDecisionQueryType.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLAuthzDecisionQueryType.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLAuthzDecisionQueryType.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,137 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:14:41 PM CST 
+//
+
+
+package org.jboss.identity.federation.saml.v2.profiles.xacml.protocol;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType; 
+
+import org.jboss.identity.federation.saml.v2.protocol.RequestAbstractType;
+import org.jboss.security.xacml.core.model.context.RequestType;
+
+
+/**
+ * <p>Java class for XACMLAuthzDecisionQueryType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="XACMLAuthzDecisionQueryType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ *       &lt;sequence>
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Request"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="InputContextOnly" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       &lt;attribute name="ReturnContext" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "XACMLAuthzDecisionQueryType", propOrder = {
+    "request"
+})
+public class XACMLAuthzDecisionQueryType
+    extends RequestAbstractType
+{
+
+    @XmlElement(name = "Request", namespace = "urn:oasis:names:tc:xacml:2.0:context:schema:os", required = true)
+    protected RequestType request;
+    @XmlAttribute(name = "InputContextOnly")
+    protected Boolean inputContextOnly;
+    @XmlAttribute(name = "ReturnContext")
+    protected Boolean returnContext;
+
+    /**
+     * Gets the value of the request property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link RequestType }
+     *     
+     */
+    public RequestType getRequest() {
+        return request;
+    }
+
+    /**
+     * Sets the value of the request property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link RequestType }
+     *     
+     */
+    public void setRequest(RequestType value) {
+        this.request = value;
+    }
+
+    /**
+     * Gets the value of the inputContextOnly property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public boolean isInputContextOnly() {
+        if (inputContextOnly == null) {
+            return false;
+        } else {
+            return inputContextOnly;
+        }
+    }
+
+    /**
+     * Sets the value of the inputContextOnly property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setInputContextOnly(Boolean value) {
+        this.inputContextOnly = value;
+    }
+
+    /**
+     * Gets the value of the returnContext property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public boolean isReturnContext() {
+        if (returnContext == null) {
+            return false;
+        } else {
+            return returnContext;
+        }
+    }
+
+    /**
+     * Sets the value of the returnContext property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setReturnContext(Boolean value) {
+        this.returnContext = value;
+    }
+
+}

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLPolicyQueryType.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLPolicyQueryType.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/XACMLPolicyQueryType.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,93 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:14:41 PM CST 
+//
+
+
+package org.jboss.identity.federation.saml.v2.profiles.xacml.protocol;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType; 
+
+import org.jboss.identity.federation.saml.v2.protocol.RequestAbstractType;
+
+
+/**
+ * <p>Java class for XACMLPolicyQueryType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="XACMLPolicyQueryType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Request"/>
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}Target"/>
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}PolicySetIdReference"/>
+ *         &lt;element ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}PolicyIdReference"/>
+ *       &lt;/choice>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "XACMLPolicyQueryType", propOrder = {
+    "requestOrTargetOrPolicySetIdReference"
+})
+public class XACMLPolicyQueryType
+    extends RequestAbstractType
+{
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "Request", namespace = "urn:oasis:names:tc:xacml:2.0:context:schema:os", type = JAXBElement.class),
+        @XmlElementRef(name = "Target", namespace = "urn:oasis:names:tc:xacml:2.0:policy:schema:os", type = JAXBElement.class),
+        @XmlElementRef(name = "PolicyIdReference", namespace = "urn:oasis:names:tc:xacml:2.0:policy:schema:os", type = JAXBElement.class),
+        @XmlElementRef(name = "PolicySetIdReference", namespace = "urn:oasis:names:tc:xacml:2.0:policy:schema:os", type = JAXBElement.class)
+    })
+    protected List<JAXBElement<?>> requestOrTargetOrPolicySetIdReference;
+
+    /**
+     * Gets the value of the requestOrTargetOrPolicySetIdReference property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the requestOrTargetOrPolicySetIdReference property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getRequestOrTargetOrPolicySetIdReference().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link IdReferenceType }{@code >}
+     * {@link JAXBElement }{@code <}{@link IdReferenceType }{@code >}
+     * {@link JAXBElement }{@code <}{@link RequestType }{@code >}
+     * {@link JAXBElement }{@code <}{@link TargetType }{@code >}
+     * 
+     * 
+     */
+    public List<JAXBElement<?>> getRequestOrTargetOrPolicySetIdReference() {
+        if (requestOrTargetOrPolicySetIdReference == null) {
+            requestOrTargetOrPolicySetIdReference = new ArrayList<JAXBElement<?>>();
+        }
+        return this.requestOrTargetOrPolicySetIdReference;
+    }
+
+}

Added: identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/package-info.java
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/package-info.java	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/java/org/jboss/identity/federation/saml/v2/profiles/xacml/protocol/package-info.java	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.08 at 03:14:41 PM CST 
+//
+
+ at javax.xml.bind.annotation.XmlSchema(namespace = "urn:oasis:xacml:2.0:saml:protocol:schema:os", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.identity.federation.saml.v2.profiles.xacml.protocol;

Added: identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-assertion-schema-os.xsd
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-assertion-schema-os.xsd	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-assertion-schema-os.xsd	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema
+    targetNamespace="urn:oasis:xacml:2.0:saml:assertion:schema:os"
+    xmlns="http://www.w3.org/2001/XMLSchema"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os"
+    xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
+    xmlns:xacml-saml="urn:oasis:xacml:2.0:saml:assertion:schema:os"
+    elementFormDefault="unqualified"
+    attributeFormDefault="unqualified"
+    blockDefault="substitution"
+    version="2.0">
+  <xs:import namespace="urn:oasis:names:tc:SAML:2.0:assertion"
+      schemaLocation="http://www.oasis-open.org/committees/download.php/11027/sstc-saml-schema-assertion-2.0.xsd"/>
+  <xs:import namespace="urn:oasis:names:tc:SAML:2.0:protocol"
+      schemaLocation="http://www.oasis-open.org/committees/download.php/11026/sstc-saml-schema-protocol-2.0.xsd"/>
+  <xs:import namespace="urn:oasis:names:tc:xacml:2.0:context:schema:os"
+      schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-context-schema-os.xsd"/>
+  <xs:import namespace="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
+      schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-policy-schema-os.xsd"/>
+  <xs:annotation>
+    <xs:documentation>
+        Document identifier: access_control-xacml-2.0-saml-assertion-schema-cd-02.xsd
+        Location: http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-saml-assertion-schema-cd-os.xsd
+    </xs:documentation>
+  </xs:annotation>
+  <!--    -->
+  <xs:element name="XACMLAuthzDecisionStatement"
+           type="xacml-saml:XACMLAuthzDecisionStatementType"/>
+  <xs:complexType name="XACMLAuthzDecisionStatementType">
+    <xs:complexContent>
+      <xs:extension base="saml:StatementAbstractType">
+        <xs:sequence>
+          <xs:element ref="xacml-context:Response"/>
+          <xs:element ref="xacml-context:Request"  minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <!--    -->
+  <xs:element name="XACMLPolicyStatement"
+           type="xacml-saml:XACMLPolicyStatementType"/>
+  <xs:complexType name="XACMLPolicyStatementType">
+    <xs:complexContent>
+      <xs:extension base="saml:StatementAbstractType">
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="xacml:Policy"/>
+          <xs:element ref="xacml:PolicySet"/>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+</schema>

Added: identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-protocol-schema-os.xsd
===================================================================
--- identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-protocol-schema-os.xsd	                        (rev 0)
+++ identity-federation/trunk/identity-fed-model/src/main/resources/schema/saml/v2/access_control-xacml-2.0-saml-protocol-schema-os.xsd	2009-01-08 22:55:31 UTC (rev 208)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema
+    targetNamespace="urn:oasis:xacml:2.0:saml:protocol:schema:os"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns="http://www.w3.org/2001/XMLSchema"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
+    xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os"
+    xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
+    xmlns:xacml-samlp="urn:oasis:xacml:2.0:saml:protocol:schema:os"
+    elementFormDefault="unqualified"
+    attributeFormDefault="unqualified"
+    blockDefault="substitution"
+    version="2.0">
+  <xs:import namespace="urn:oasis:names:tc:SAML:2.0:assertion"
+      schemaLocation="http://www.oasis-open.org/committees/download.php/11027/sstc-saml-schema-assertion-2.0.xsd"/>
+  <xs:import namespace="urn:oasis:names:tc:SAML:2.0:protocol"
+      schemaLocation="http://www.oasis-open.org/committees/download.php/11026/sstc-saml-schema-protocol-2.0.xsd"/>
+  <xs:import namespace="urn:oasis:names:tc:xacml:2.0:context:schema:os"
+      schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-context-schema-os.xsd"/>
+  <xs:import namespace="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
+      schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-policy-schema-os.xsd"/>
+  <xs:annotation>
+    <xs:documentation>
+        Document identifier: access_control-xacml-2.0-saml-protocol-schema-os.xsd
+        Location: http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-saml-protocol-schema-os.xsd
+    </xs:documentation>
+  </xs:annotation>
+  <!--    -->
+  <xs:element name="XACMLAuthzDecisionQuery"
+           type="xacml-samlp:XACMLAuthzDecisionQueryType"/>
+  <xs:complexType name="XACMLAuthzDecisionQueryType">
+    <xs:complexContent>
+      <xs:extension base="samlp:RequestAbstractType">
+        <xs:sequence>
+          <xs:element ref="xacml-context:Request"/>
+        </xs:sequence>
+        <xs:attribute name="InputContextOnly"
+                      type="boolean"
+                      use="optional"
+                      default="false"/>
+        <xs:attribute name="ReturnContext"
+                      type="boolean"
+                      use="optional"
+                      default="false"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <!--    -->
+  <xs:element name="XACMLPolicyQuery"
+           type="xacml-samlp:XACMLPolicyQueryType"/>
+  <xs:complexType name="XACMLPolicyQueryType">
+    <xs:complexContent>
+      <xs:extension base="samlp:RequestAbstractType">
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="xacml-context:Request"/>
+          <xs:element ref="xacml:Target"/>
+          <xs:element ref="xacml:PolicySetIdReference"/>
+          <xs:element ref="xacml:PolicyIdReference"/>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+</schema>




More information about the jboss-identity-commits mailing list