[jboss-cvs] JBossAS SVN: r71740 - projects/security/security-xacml/trunk/jboss-xacml-saml/src/main/java/org/jboss/security/xacml/saml/integration/opensaml/request.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Apr 4 18:40:29 EDT 2008


Author: anil.saldhana at jboss.com
Date: 2008-04-04 18:40:28 -0400 (Fri, 04 Apr 2008)
New Revision: 71740

Modified:
   projects/security/security-xacml/trunk/jboss-xacml-saml/src/main/java/org/jboss/security/xacml/saml/integration/opensaml/request/JBossSAMLRequest.java
Log:
SECURITY-186: consider soap11 env

Modified: projects/security/security-xacml/trunk/jboss-xacml-saml/src/main/java/org/jboss/security/xacml/saml/integration/opensaml/request/JBossSAMLRequest.java
===================================================================
--- projects/security/security-xacml/trunk/jboss-xacml-saml/src/main/java/org/jboss/security/xacml/saml/integration/opensaml/request/JBossSAMLRequest.java	2008-04-04 22:39:00 UTC (rev 71739)
+++ projects/security/security-xacml/trunk/jboss-xacml-saml/src/main/java/org/jboss/security/xacml/saml/integration/opensaml/request/JBossSAMLRequest.java	2008-04-04 22:40:28 UTC (rev 71740)
@@ -23,10 +23,14 @@
 
 import java.io.File;
 import java.io.InputStream;
+import java.util.List;
 
 import org.jboss.security.xacml.saml.integration.opensaml.util.DOMUtil;
 import org.jboss.security.xacml.saml.integration.opensaml.util.SAML2Util;
 import org.opensaml.common.SAMLObject;
+import org.opensaml.ws.soap.soap11.Body;
+import org.opensaml.ws.soap.soap11.Envelope;
+import org.opensaml.xml.XMLObject;
 import org.opensaml.xml.io.UnmarshallingException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -61,6 +65,28 @@
       Element docElement = document.getDocumentElement();
       if(docElement == null)
          throw new IllegalStateException("Document Element is null");
-      return (SAMLObject) util.toXMLObject(docElement);
+      XMLObject xmlObject = util.toXMLObject(docElement);
+      if(xmlObject instanceof Envelope)
+      {
+         Envelope envelope = (Envelope) xmlObject; 
+         Body soapBody = envelope.getBody();
+         List<XMLObject> children = soapBody.getOrderedChildren();
+         if(children != null)
+         {
+            for(XMLObject child: children)
+            {
+               if(child instanceof SAMLObject)
+               {
+                  return (SAMLObject) child;
+               }
+            }
+         }
+      }
+      else
+      if(xmlObject instanceof SAMLObject)
+      {
+        return (SAMLObject) xmlObject;
+      }
+      throw new RuntimeException("Unknown Object:"+xmlObject.getClass().getCanonicalName()) ;
    }
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list