Author: anil.saldhana(a)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(a)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(a)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(a)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(a)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/...
+// 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.
+ *
+ */
+@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/...
+// 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>
+ * <complexType name="XACMLAuthzDecisionStatementType">
+ * <complexContent>
+ * <extension
base="{urn:oasis:names:tc:SAML:2.0:assertion}StatementAbstractType">
+ * <sequence>
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Response"/>
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Request"
minOccurs="0"/>
+ * </sequence>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+(a)XmlAccessorType(XmlAccessType.FIELD)
+@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/...
+// 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>
+ * <complexType name="XACMLPolicyStatementType">
+ * <complexContent>
+ * <extension
base="{urn:oasis:names:tc:SAML:2.0:assertion}StatementAbstractType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}Policy"/>
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}PolicySet"/>
+ * </choice>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+(a)XmlAccessorType(XmlAccessType.FIELD)
+@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/...
+// 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
+//
+
+(a)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/...
+// 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.
+ *
+ */
+@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/...
+// 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>
+ * <complexType name="XACMLAuthzDecisionQueryType">
+ * <complexContent>
+ * <extension
base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ * <sequence>
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Request"/>
+ * </sequence>
+ * <attribute name="InputContextOnly"
type="{http://www.w3.org/2001/XMLSchema}boolean" default="false"
/>
+ * <attribute name="ReturnContext"
type="{http://www.w3.org/2001/XMLSchema}boolean" default="false"
/>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+(a)XmlAccessorType(XmlAccessType.FIELD)
+@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/...
+// 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>
+ * <complexType name="XACMLPolicyQueryType">
+ * <complexContent>
+ * <extension
base="{urn:oasis:names:tc:SAML:2.0:protocol}RequestAbstractType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:context:schema:os}Request"/>
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}Target"/>
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}PolicySetIdReference"/>
+ * <element
ref="{urn:oasis:names:tc:xacml:2.0:policy:schema:os}PolicyIdReference"/>
+ * </choice>
+ * </extension>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+(a)XmlAccessorType(XmlAccessType.FIELD)
+@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/...
+// 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
+//
+
+(a)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/11...
+ <xs:import namespace="urn:oasis:names:tc:SAML:2.0:protocol"
+
schemaLocation="http://www.oasis-open.org/committees/download.php/11...
+ <xs:import namespace="urn:oasis:names:tc:xacml:2.0:context:schema:os"
+
schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-...
+ <xs:import namespace="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
+
schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-...
+ <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-assert...
+ </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/11...
+ <xs:import namespace="urn:oasis:names:tc:SAML:2.0:protocol"
+
schemaLocation="http://www.oasis-open.org/committees/download.php/11...
+ <xs:import namespace="urn:oasis:names:tc:xacml:2.0:context:schema:os"
+
schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-...
+ <xs:import namespace="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
+
schemaLocation="http://docs.oasis-open.org/xacml/2.0/access_control-...
+ <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-protoc...
+ </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>