You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2012/02/04 12:05:45 UTC

svn commit: r1240487 - in /axis/axis2/java/rampart/trunk/modules/rampart-trust: pom.xml src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java src/main/java/org/apache/rahas/impl/util/SAML2Utils.java

Author: veithen
Date: Sat Feb  4 11:05:45 2012
New Revision: 1240487

URL: http://svn.apache.org/viewvc?rev=1240487&view=rev
Log:
Get rid of the remaining direct references to DOOM. In particular, removed the DocumentBuilderFactory hacks. Since Amila ported the AxiomParserPool to OpenSAML 2, these hacks are no longer necessary.

Modified:
    axis/axis2/java/rampart/trunk/modules/rampart-trust/pom.xml
    axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
    axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAML2Utils.java

Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-trust/pom.xml?rev=1240487&r1=1240486&r2=1240487&view=diff
==============================================================================
--- axis/axis2/java/rampart/trunk/modules/rampart-trust/pom.xml (original)
+++ axis/axis2/java/rampart/trunk/modules/rampart-trust/pom.xml Sat Feb  4 11:05:45 2012
@@ -79,6 +79,7 @@
         <dependency>
             <groupId>org.apache.ws.commons.axiom</groupId>
             <artifactId>axiom-dom</artifactId>
+            <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>

Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java?rev=1240487&r1=1240486&r2=1240487&view=diff
==============================================================================
--- axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java (original)
+++ axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java Sat Feb  4 11:05:45 2012
@@ -16,9 +16,10 @@
 
 package org.apache.rahas.impl;
 
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.dom.jaxp.DocumentBuilderFactoryImpl;
+import org.apache.axiom.om.dom.DOMMetaFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.Parameter;
@@ -43,7 +44,6 @@ import org.apache.xml.security.signature
 import org.apache.xml.security.utils.EncryptionConstants;
 import org.joda.time.DateTime;
 import org.opensaml.Configuration;
-import org.opensaml.DefaultBootstrap;
 import org.opensaml.common.SAMLException;
 import org.opensaml.common.SAMLObjectBuilder;
 import org.opensaml.common.SAMLVersion;
@@ -53,7 +53,6 @@ import org.opensaml.saml2.core.impl.Asse
 import org.opensaml.saml2.core.impl.ConditionsBuilder;
 import org.opensaml.saml2.core.impl.IssuerBuilder;
 import org.opensaml.saml2.core.impl.NameIDBuilder;
-import org.opensaml.xml.ConfigurationException;
 import org.opensaml.xml.XMLObject;
 import org.opensaml.xml.XMLObjectBuilder;
 import org.opensaml.xml.XMLObjectBuilderFactory;
@@ -98,22 +97,6 @@ public class SAML2TokenIssuer implements
 
     private static Log log = LogFactory.getLog(SAML2TokenIssuer.class);
 
-    static {
-        try {
-            // Set the "javax.xml.parsers.DocumentBuilderFactory" system property
-            // to the endorsed JAXP impl.
-            System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
-                    "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
-            DefaultBootstrap.bootstrap();
-        } catch (ConfigurationException e) {
-            log.error("SAML2TokenIssuerBootstrapError", e);
-            throw new RuntimeException(e);
-        } finally {
-            // Unset the DOM impl to default
-            DocumentBuilderFactoryImpl.setDOOMRequired(false);
-        }
-    }
-    
     public SOAPEnvelope issue(RahasData data) throws TrustException {
         MessageContext inMsgCtx = data.getInMessageContext();
 
@@ -300,10 +283,8 @@ public class SAML2TokenIssuer implements
             writer.write(element, output);
             String elementString = byteArrayOutputStrm.toString();
 
-            DocumentBuilderFactoryImpl.setDOOMRequired(true);
-
-            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-            documentBuilderFactory.setNamespaceAware(true);
+            DocumentBuilderFactory documentBuilderFactory = ((DOMMetaFactory)OMAbstractFactory.getMetaFactory(
+                    OMAbstractFactory.FEATURE_DOM)).newDocumentBuilderFactory();
             DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder();
             Document document = docBuilder.parse(new ByteArrayInputStream(elementString.trim().getBytes()));
             Element assertionElement = document.getDocumentElement();
@@ -334,11 +315,6 @@ public class SAML2TokenIssuer implements
         } catch (Exception e) {
             e.printStackTrace();
         }
-        finally {
-            // Unset the DOM impl to default
-            DocumentBuilderFactoryImpl.setDOOMRequired(false);
-        }
-
 
         return null;
     }

Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAML2Utils.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAML2Utils.java?rev=1240487&r1=1240486&r2=1240487&view=diff
==============================================================================
--- axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAML2Utils.java (original)
+++ axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAML2Utils.java Sat Feb  4 11:05:45 2012
@@ -17,7 +17,8 @@
 
 package org.apache.rahas.impl.util;
 
-import org.apache.axiom.om.impl.dom.jaxp.DocumentBuilderFactoryImpl;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.rahas.RahasConstants;
@@ -64,20 +65,10 @@ public class SAML2Utils {
     public static Element getElementFromAssertion(XMLObject xmlObj) throws TrustException {
         try {
             
-            String jaxpProperty = System.getProperty("javax.xml.parsers.DocumentBuilderFactory");
-            //System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
-
             MarshallerFactory marshallerFactory = org.opensaml.xml.Configuration.getMarshallerFactory();
             Marshaller marshaller = marshallerFactory.getMarshaller(xmlObj);
             Element element = marshaller.marshall(xmlObj);
 
-            // Reset the sys. property to its previous value.
-            if (jaxpProperty == null) {
-                System.getProperties().remove("javax.xml.parsers.DocumentBuilderFactory");
-            } else {
-                System.setProperty("javax.xml.parsers.DocumentBuilderFactory", jaxpProperty);
-            }
-
             ByteArrayOutputStream byteArrayOutputStrm = new ByteArrayOutputStream();
 
             DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
@@ -91,14 +82,11 @@ public class SAML2Utils {
             writer.write(element, output);
             String elementString = byteArrayOutputStrm.toString();
 
-            DocumentBuilderFactoryImpl.setDOOMRequired(true);
-
-            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
-            documentBuilderFactory.setNamespaceAware(true);
+            DocumentBuilderFactory documentBuilderFactory = ((DOMMetaFactory)OMAbstractFactory.getMetaFactory(
+                    OMAbstractFactory.FEATURE_DOM)).newDocumentBuilderFactory();
             DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder();
             Document document = docBuilder.parse(new ByteArrayInputStream(elementString.trim().getBytes()));
             Element assertionElement = document.getDocumentElement();
-            DocumentBuilderFactoryImpl.setDOOMRequired(false);
 
             log.debug("DOM element is created successfully from the OpenSAML2 XMLObject");
             return assertionElement;