You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2015/06/18 12:41:35 UTC
svn commit: r1686176 - in /webservices/wss4j/trunk:
ws-security-common/src/main/java/org/apache/wss4j/common/saml/
ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/
Author: coheigea
Date: Thu Jun 18 10:41:35 2015
New Revision: 1686176
URL: http://svn.apache.org/r1686176
Log:
Configure BasicParserPool to avoid a NPE
Modified:
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLBootstrap.java
webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLUtil.java
webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java
Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLBootstrap.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLBootstrap.java?rev=1686176&r1=1686175&r2=1686176&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLBootstrap.java (original)
+++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLBootstrap.java Thu Jun 18 10:41:35 2015
@@ -95,24 +95,4 @@ public class OpenSAMLBootstrap {
}
}
-
- /*
- protected static void initializeParserPool() throws ConfigurationException {
- StaticBasicParserPool pp = new StaticBasicParserPool();
- pp.setMaxPoolSize(50);
-
- Map<String, Boolean> features = new HashMap<String, Boolean>();
- features.put(XMLConstants.FEATURE_SECURE_PROCESSING, true);
- features.put("http://apache.org/xml/features/disallow-doctype-decl", true);
- pp.setBuilderFeatures(features);
- pp.setExpandEntityReferences(false);
-
- try {
- pp.initialize();
- } catch (XMLParserException e) {
- throw new ConfigurationException("Error initializing parser pool", e);
- }
- Configuration.setParserPool(pp);
- }
- */
}
\ No newline at end of file
Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLUtil.java?rev=1686176&r1=1686175&r2=1686176&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLUtil.java (original)
+++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/saml/OpenSAMLUtil.java Thu Jun 18 10:41:35 2015
@@ -21,6 +21,9 @@ package org.apache.wss4j.common.saml;
import javax.xml.namespace.QName;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.xml.BasicParserPool;
+
import org.apache.wss4j.common.crypto.WSProviderConfig;
import org.apache.wss4j.common.ext.WSSecurityException;
import org.opensaml.core.config.Configuration;
@@ -90,11 +93,16 @@ public final class OpenSAMLUtil {
marshallerFactory = XMLObjectProviderRegistrySupport.getMarshallerFactory();
unmarshallerFactory = XMLObjectProviderRegistrySupport.getUnmarshallerFactory();
+ BasicParserPool pp = new BasicParserPool();
+ pp.setMaxPoolSize(50);
+ pp.initialize();
+ providerRegistry.setParserPool(pp);
+
samlEngineInitialized = true;
if (LOG.isDebugEnabled()) {
LOG.debug("opensaml3 library bootstrap complete");
}
- } catch (XMLConfigurationException ex) {
+ } catch (XMLConfigurationException | ComponentInitializationException ex) {
LOG.error("Unable to bootstrap the opensaml3 library - all SAML operations will fail", ex);
}
}
Modified: webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java?rev=1686176&r1=1686175&r2=1686176&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/saml/SamlTokenTest.java Thu Jun 18 10:41:35 2015
@@ -872,6 +872,31 @@ public class SamlTokenTest extends org.j
}
@org.junit.Test
+ public void testAssertionWrapperNoDocument() throws Exception {
+ SAML1CallbackHandler callbackHandler = new SAML1CallbackHandler();
+ callbackHandler.setStatement(SAML1CallbackHandler.Statement.AUTHN);
+ callbackHandler.setIssuer("www.example.com");
+
+ SAMLCallback samlCallback = new SAMLCallback();
+ SAMLUtil.doSAMLCallback(callbackHandler, samlCallback);
+ SamlAssertionWrapper samlAssertion = new SamlAssertionWrapper(samlCallback);
+
+ String assertionString = DOM2Writer.nodeToString(samlAssertion.toDOM(null));
+
+ // Convert String to DOM + into an assertionWrapper
+ InputStream in = new ByteArrayInputStream(assertionString.getBytes());
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ Document newDoc = dbf.newDocumentBuilder().parse(in);
+
+ SamlAssertionWrapper newAssertion =
+ new SamlAssertionWrapper(newDoc.getDocumentElement());
+ String secondAssertionString = newAssertion.assertionToString();
+ assertEquals(assertionString, secondAssertionString);
+ }
+
+ @org.junit.Test
public void testRequiredSubjectConfirmationMethod() throws Exception {
SAML2CallbackHandler callbackHandler = new SAML2CallbackHandler();
callbackHandler.setStatement(SAML2CallbackHandler.Statement.AUTHN);