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;