This is an automated email from the ASF dual-hosted git repository.
robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-rampart.git
The following commit(s) were added to refs/heads/master by this push:
new f4752370 Fix several tests in CommonUtilTest, add some temp debugging
related to some SAML2TokenIssuerTest errors
f4752370 is described below
commit f475237088e95d114c797d4c945f70400878c8e2
Author: Robert Lazarski <[email protected]>
AuthorDate: Thu Sep 14 18:20:25 2023 -0400
Fix several tests in CommonUtilTest, add some temp debugging related to
some SAML2TokenIssuerTest errors
---
code-coverage/pom.xml | 1 +
modules/rampart-trust/pom.xml | 4 ++++
.../java/org/apache/rahas/impl/SAML2TokenIssuer.java | 9 ++++++---
.../java/org/apache/rahas/impl/util/CommonUtil.java | 19 ++++++++++++++++++-
.../java/org/apache/rahas/impl/util/SAMLUtils.java | 2 +-
.../org/apache/rahas/impl/util/CommonUtilTest.java | 4 +---
.../org/apache/rahas/impl/util/SAMLUtilsTest.java | 2 +-
pom.xml | 18 ++++++++++++------
8 files changed, 44 insertions(+), 15 deletions(-)
diff --git a/code-coverage/pom.xml b/code-coverage/pom.xml
index fd78e306..080ba75e 100644
--- a/code-coverage/pom.xml
+++ b/code-coverage/pom.xml
@@ -121,6 +121,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
+ <version>0.8.10</version>
<configuration combine.self="append">
</configuration>
diff --git a/modules/rampart-trust/pom.xml b/modules/rampart-trust/pom.xml
index d8d238d1..58a21cc3 100644
--- a/modules/rampart-trust/pom.xml
+++ b/modules/rampart-trust/pom.xml
@@ -88,6 +88,10 @@
<groupId>org.opensaml</groupId>
<artifactId>opensaml-soap-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opensaml</groupId>
+ <artifactId>opensaml-soap-impl</artifactId>
+ </dependency>
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
diff --git
a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
index d9bfc3b9..82ed8c8d 100644
---
a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
+++
b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
@@ -233,6 +233,12 @@ public class SAML2TokenIssuer implements TokenIssuer {
Element assertionElement = assertion.getDOM();
+ try {
+ System.out.println("createRequestSecurityTokenResponse() found
assertionElement local name: " + assertionElement.getLocalName() + " , text
value: " +
((org.w3c.dom.ls.DOMImplementationLS)assertionElement.getOwnerDocument().getImplementation()).createLSSerializer().writeToString(assertionElement)
+ " , on OMElement requestedSecurityTokenElement.toStringWithConsume() : " +
requestedSecurityTokenElement.toStringWithConsume());
+
+ } catch (Exception ex) {
+ log.error(ex.getMessage(), ex);
+ }
requestedSecurityTokenElement.addChild((OMNode)assertionElement);
// Store the token
@@ -645,12 +651,9 @@ public class SAML2TokenIssuer implements TokenIssuer {
XSStringBuilder attributeValueBuilder = (XSStringBuilder)
builderFactory
.getBuilder(XSString.TYPE_NAME);
-XSString stringValue = null;
-/*
XSString stringValue = attributeValueBuilder.buildObject(
AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME);
-*/
attributeValueBuilder.buildObject(
AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME);
stringValue.setValue("Colombo/Rahas");
diff --git
a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/CommonUtil.java
b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/CommonUtil.java
index a15c1816..b361c679 100644
---
a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/CommonUtil.java
+++
b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/CommonUtil.java
@@ -33,6 +33,7 @@ import org.apache.wss4j.common.crypto.CryptoType;
import org.apache.wss4j.common.ext.WSSecurityException;
import org.apache.wss4j.common.util.KeyUtils;
import org.apache.wss4j.common.util.Loader;
+import org.apache.wss4j.dom.callback.DOMCallbackLookup;
import org.apache.wss4j.dom.engine.WSSConfig;
import org.apache.wss4j.dom.engine.WSSecurityEngineResult;
import org.apache.wss4j.dom.handler.RequestData;
@@ -45,6 +46,9 @@ import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.XMLObjectBuilder;
import org.opensaml.core.xml.XMLObjectBuilderFactory;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.soap.wssecurity.KeyIdentifier;
+import org.opensaml.soap.wssecurity.impl.SecurityTokenReferenceBuilder;
+import org.opensaml.saml.common.SAMLObjectBuilder;
import org.opensaml.xmlsec.encryption.EncryptedKey;
import org.opensaml.xmlsec.signature.KeyInfo;
import org.opensaml.xmlsec.signature.X509Data;
@@ -59,7 +63,9 @@ import javax.xml.parsers.ParserConfigurationException;
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
import java.util.Base64;
import javax.crypto.KeyGenerator;
@@ -158,6 +164,7 @@ public class CommonUtil {
requestData.setWssConfig(cfg);
WSDocInfo docInfo = new
WSDocInfo(encryptedKeyElement.getOwnerDocument());
+ docInfo.setCallbackLookup(new
DOMCallbackLookup(encryptedKeyElement.getOwnerDocument()));
requestData.setWsDocInfo(docInfo);
List<WSSecurityEngineResult> resultList;
@@ -320,10 +327,20 @@ public class CommonUtil {
*/
public static XMLObject buildXMLObject(QName objectQName) throws
TrustException {
+ log.debug("buildXMLObject() is starting on QName: " + objectQName);
XMLObjectBuilderFactory builderFactory =
XMLObjectProviderRegistrySupport.getBuilderFactory();
+ if (builderFactory.getBuilder(objectQName) == null) {
+ if (KeyIdentifier.ELEMENT_NAME == objectQName) {
+ builderFactory.registerBuilder(KeyIdentifier.ELEMENT_NAME, new
SecurityTokenReferenceBuilder());
+ log.warn("An opensaml SecurityTokenReferenceBuilder was added
to the opensaml registry for QName key: " + KeyIdentifier.ELEMENT_NAME);
+ } else {
+ log.error("No opensaml builders found for QName key: " +
objectQName);
+ }
+
+ }
XMLObjectBuilder builder =
builderFactory.getBuilderOrThrow(objectQName);
if (builder == null) {
- log.debug("Unable to find OpenSAML builder for object " +
objectQName);
+ log.error("Unable to find OpenSAML builder for object " +
objectQName);
throw new TrustException("builderNotFound",new
Object[]{objectQName});
}
return builder.buildObject(objectQName.getNamespaceURI(),
objectQName.getLocalPart(), objectQName.getPrefix());
diff --git
a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java
b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java
index d740bd93..0a2eb3a7 100644
---
a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java
+++
b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java
@@ -546,7 +546,7 @@ public class SAMLUtils {
/**
- * This method will created the "EncryptedKey" of a SAML assertion.
+ * This method will create the "EncryptedKey" of a SAML assertion.
* An encrypted key would look like as follows,
* <pre> <xenc:EncryptedKey
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
* xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
diff --git
a/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/CommonUtilTest.java
b/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/CommonUtilTest.java
index ca13ef74..f5321f3a 100644
---
a/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/CommonUtilTest.java
+++
b/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/CommonUtilTest.java
@@ -44,7 +44,6 @@ import org.opensaml.xmlsec.signature.KeyInfo;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
@@ -181,8 +180,7 @@ public class CommonUtilTest extends AbstractTestCase {
builder.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
builder.setSymmetricEncAlgorithm(WSConstants.TRIPLE_DES);
- KeyGenerator keyGen = KeyUtils.getKeyGenerator(WSConstants.TRIPLE_DES);
- SecretKey symmetricKey = keyGen.generateKey();
+ SecretKey symmetricKey =
KeyUtils.prepareSecretKey(WSConstants.TRIPLE_DES, ephemeralKey);
builder.prepare(TestUtil.getCrypto(), symmetricKey);
diff --git
a/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/SAMLUtilsTest.java
b/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/SAMLUtilsTest.java
index c1701ab7..524c867e 100644
---
a/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/SAMLUtilsTest.java
+++
b/modules/rampart-trust/src/test/java/org/apache/rahas/impl/util/SAMLUtilsTest.java
@@ -84,7 +84,7 @@ public class SAMLUtilsTest extends AbstractTestCase {
try {
CommonUtil.buildXMLObject(new QName("http://x.com", "y"));
Assert.fail("This should throw an exception");
- } catch (TrustException e) {
+ } catch (Exception e) {
}
}
diff --git a/pom.xml b/pom.xml
index f07a1205..f7836686 100644
--- a/pom.xml
+++ b/pom.xml
@@ -347,8 +347,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
- <source>1.8</source>
- <target>1.8</target>
+ <source>11</source>
+ <target>11</target>
</configuration>
</plugin>
<plugin>
@@ -580,6 +580,12 @@
<version>${opensaml.version}</version>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>org.opensaml</groupId>
+ <artifactId>opensaml-soap-impl</artifactId>
+ <version>${opensaml.version}</version>
+ <scope>compile</scope>
+ </dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-xacml-impl</artifactId>
@@ -594,13 +600,13 @@
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.7.36</version>
+ <artifactId>slf4j-jcl</artifactId>
+ <version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-jcl</artifactId>
- <version>1.7.36</version>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>2.0.9</version>
</dependency>
<dependency>
<groupId>log4j</groupId>