This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch coheigea/saml-refactor-new
in repository https://gitbox.apache.org/repos/asf/ws-wss4j.git

commit 714afbfcf6924e4165a7b0ad801a1b19b5c74a82
Author: Colm O hEigeartaigh <cohei...@apache.org>
AuthorDate: Tue Jun 17 12:45:50 2025 +0100

    Moving Credential into ws-security-common
---
 .../wss4j/common}/dom/validate/Credential.java     | 15 ++++-----
 .../wss4j/common/principal/SAMLTokenPrincipal.java |  8 +----
 .../common/principal/SAMLTokenPrincipalImpl.java   | 38 ++++++++++++++--------
 .../processor/BinarySecurityTokenProcessor.java    |  2 +-
 .../wss4j/dom/processor/SAMLTokenProcessor.java    |  4 +--
 .../processor/SecurityContextTokenProcessor.java   |  2 +-
 .../wss4j/dom/processor/SignatureProcessor.java    |  2 +-
 .../wss4j/dom/processor/TimestampProcessor.java    |  2 +-
 .../dom/processor/UsernameTokenProcessor.java      |  2 +-
 .../apache/wss4j/dom/str/SignatureSTRParser.java   |  2 +-
 .../dom/validate/JAASUsernameTokenValidator.java   |  1 +
 .../wss4j/dom/validate/KerberosTokenValidator.java |  1 +
 .../apache/wss4j/dom/validate/NoOpValidator.java   |  1 +
 .../wss4j/dom/validate/SamlAssertionValidator.java |  3 +-
 .../dom/validate/SignatureTrustValidator.java      |  1 +
 .../wss4j/dom/validate/TimestampValidator.java     |  1 +
 .../wss4j/dom/validate/UsernameTokenValidator.java |  1 +
 .../org/apache/wss4j/dom/validate/Validator.java   |  1 +
 .../dom/common/CustomSamlAssertionValidator.java   |  4 +--
 .../wss4j/dom/message/token/BSTKerberosTest.java   |  2 +-
 .../org/apache/wss4j/dom/misc/PrincipalTest.java   |  2 +-
 .../apache/wss4j/dom/validate/ValidatorTest.java   |  1 +
 22 files changed, 54 insertions(+), 42 deletions(-)

diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/Credential.java 
b/ws-security-common/src/main/java/org/apache/wss4j/common/dom/validate/Credential.java
similarity index 93%
rename from 
ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/Credential.java
rename to 
ws-security-common/src/main/java/org/apache/wss4j/common/dom/validate/Credential.java
index c6e10fc84..bcf2cae11 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/Credential.java
+++ 
b/ws-security-common/src/main/java/org/apache/wss4j/common/dom/validate/Credential.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.wss4j.dom.validate;
+package org.apache.wss4j.common.dom.validate;
 
 import java.security.Principal;
 import java.security.PublicKey;
@@ -25,7 +25,6 @@ import java.security.cert.X509Certificate;
 
 import javax.security.auth.Subject;
 
-import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.token.BinarySecurity;
 import org.apache.wss4j.common.dom.message.token.SecurityContextToken;
 import org.apache.wss4j.common.dom.message.token.Timestamp;
@@ -43,8 +42,8 @@ public class Credential {
     private Timestamp timestamp;
     private UsernameToken usernametoken;
     private BinarySecurity binarySecurityToken;
-    private SamlAssertionWrapper samlAssertion;
-    private SamlAssertionWrapper transformedToken;
+    private Object samlAssertion;
+    private Object transformedToken;
     private SecurityContextToken securityContextToken;
     private Principal principal;
     private byte[] secretKey;
@@ -168,7 +167,7 @@ public class Credential {
      * Set an SamlAssertionWrapper to be validated
      * @param samlAssertion an SamlAssertionWrapper to be validated
      */
-    public void setSamlAssertion(SamlAssertionWrapper samlAssertion) {
+    public void setSamlAssertion(Object samlAssertion) {
         this.samlAssertion = samlAssertion;
     }
 
@@ -176,7 +175,7 @@ public class Credential {
      * Get an SamlAssertionWrapper to be validated
      * @return an SamlAssertionWrapper to be validated
      */
-    public SamlAssertionWrapper getSamlAssertion() {
+    public Object getSamlAssertion() {
         return samlAssertion;
     }
 
@@ -184,7 +183,7 @@ public class Credential {
      * Set an SamlAssertionWrapper instance which corresponds to a Transformed 
Token.
      * @param transformedToken a transformed SamlAssertionWrapper instance
      */
-    public void setTransformedToken(SamlAssertionWrapper transformedToken) {
+    public void setTransformedToken(Object transformedToken) {
         this.transformedToken = transformedToken;
     }
 
@@ -192,7 +191,7 @@ public class Credential {
      * Get an SamlAssertionWrapper instance which corresponds to a Transformed 
Token.
      * @return a transformed SamlAssertionWrapper instance
      */
-    public SamlAssertionWrapper getTransformedToken() {
+    public Object getTransformedToken() {
         return transformedToken;
     }
 
diff --git 
a/ws-security-saml/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipal.java
 
b/ws-security-common/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipal.java
similarity index 87%
rename from 
ws-security-saml/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipal.java
rename to 
ws-security-common/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipal.java
index e83601960..44b22e53b 100644
--- 
a/ws-security-saml/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipal.java
+++ 
b/ws-security-common/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipal.java
@@ -18,15 +18,9 @@
  */
 package org.apache.wss4j.common.principal;
 
-import org.apache.wss4j.common.saml.SamlAssertionWrapper;
-
 import java.security.Principal;
 
 public interface SAMLTokenPrincipal extends Principal {
 
-    SamlAssertionWrapper getToken();
-
-    String getName();
-
-    String getId();
+    Object getToken();
 }
diff --git 
a/ws-security-saml/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipalImpl.java
 
b/ws-security-common/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipalImpl.java
similarity index 50%
rename from 
ws-security-saml/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipalImpl.java
rename to 
ws-security-common/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipalImpl.java
index 85e9e802e..1643827e8 100644
--- 
a/ws-security-saml/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipalImpl.java
+++ 
b/ws-security-common/src/main/java/org/apache/wss4j/common/principal/SAMLTokenPrincipalImpl.java
@@ -19,9 +19,10 @@
 
 package org.apache.wss4j.common.principal;
 
-import org.apache.wss4j.common.saml.SamlAssertionWrapper;
-
 import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.wss4j.common.ext.WSSecurityException;
 
 /**
  * A principal that represents a SAML Token. It parses the Subject and returns 
the Subject
@@ -31,15 +32,32 @@ public class SAMLTokenPrincipalImpl implements 
Serializable, SAMLTokenPrincipal
     private static final long serialVersionUID = 1L;
 
     private String name;
-    private SamlAssertionWrapper samlAssertion;
+    private Object samlAssertion;
 
-    public SAMLTokenPrincipalImpl(SamlAssertionWrapper samlAssertion) {
+    public SAMLTokenPrincipalImpl(Object samlAssertion) throws 
WSSecurityException {
         this.samlAssertion = samlAssertion;
-        this.name = samlAssertion.getSubjectName();
+        
+        if (samlAssertion == null) {
+            throw new IllegalArgumentException("SAML Assertion cannot be 
null");
+        }
+
+        // Use reflection to extract the subject name from the SAML assertion
+        try {
+            Class<?> samlAssertionWrapperClass = 
Class.forName("org.apache.wss4j.common.saml.SamlAssertionWrapper");
+            if (samlAssertionWrapperClass.isInstance(samlAssertion)) {
+                Object samlWrapper = 
samlAssertionWrapperClass.cast(samlAssertion);
+                this.name = (String) 
samlAssertionWrapperClass.getMethod("getSubjectName").invoke(samlWrapper);
+            } else {
+                throw new IllegalArgumentException("Provided SAML Assertion is 
not of the expected type");
+            }
+        } catch (ClassNotFoundException | NoSuchMethodException | 
IllegalAccessException | InvocationTargetException e) {
+            throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILURE, 
"invalidSAMLsecurity", 
+                new Object[] {"Error extracting subject name from SAML 
Assertion"});
+        }
     }
 
     @Override
-    public SamlAssertionWrapper getToken() {
+    public Object getToken() {
         return samlAssertion;
     }
 
@@ -48,12 +66,4 @@ public class SAMLTokenPrincipalImpl implements Serializable, 
SAMLTokenPrincipal
         return this.name;
     }
 
-    @Override
-    public String getId() {
-        if (samlAssertion != null) {
-            return samlAssertion.getId();
-        }
-        return null;
-    }
-
 }
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java
index a66134392..54b25ad6c 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java
@@ -36,7 +36,7 @@ import 
org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.common.dom.message.token.KerberosSecurity;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 import org.w3c.dom.Element;
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SAMLTokenProcessor.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SAMLTokenProcessor.java
index c76e80301..fce6ecb13 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SAMLTokenProcessor.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SAMLTokenProcessor.java
@@ -49,7 +49,7 @@ import 
org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.saml.WSSSAMLKeyInfoProcessor;
 import org.apache.wss4j.dom.util.EncryptionUtils;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 import org.opensaml.xmlsec.signature.KeyInfo;
 import org.opensaml.xmlsec.signature.Signature;
@@ -96,7 +96,7 @@ public class SAMLTokenProcessor implements Processor {
         List<WSDataRef> dataRefs = createDataRefs(elem, samlAssertion, 
xmlSignature);
 
         Credential credential = handleSAMLToken(samlAssertion, data, 
validator);
-        samlAssertion = credential.getSamlAssertion();
+        samlAssertion = (SamlAssertionWrapper)credential.getSamlAssertion();
         if (LOG.isDebugEnabled()) {
             LOG.debug("SAML Assertion issuer " + 
samlAssertion.getIssuerString());
             LOG.debug(DOM2Writer.nodeToString(elem));
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SecurityContextTokenProcessor.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SecurityContextTokenProcessor.java
index aafa66620..d86462842 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SecurityContextTokenProcessor.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SecurityContextTokenProcessor.java
@@ -26,7 +26,7 @@ import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.XMLUtils;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.common.dom.message.token.SecurityContextToken;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 import org.w3c.dom.Element;
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java
index b45c57b44..c63a93da9 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java
@@ -79,7 +79,7 @@ import org.apache.wss4j.common.dom.transform.STRTransformUtil;
 import org.apache.wss4j.dom.util.EncryptionUtils;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.apache.wss4j.dom.util.X509Util;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/TimestampProcessor.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/TimestampProcessor.java
index 6cd74759d..7e39f2d60 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/TimestampProcessor.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/TimestampProcessor.java
@@ -26,7 +26,7 @@ import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.common.dom.message.token.Timestamp;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 import org.w3c.dom.Element;
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/UsernameTokenProcessor.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/UsernameTokenProcessor.java
index 7418d7c1d..9a921e2ae 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/UsernameTokenProcessor.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/UsernameTokenProcessor.java
@@ -32,7 +32,7 @@ import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.common.dom.message.token.UsernameToken;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 import org.apache.xml.security.utils.XMLUtils;
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/SignatureSTRParser.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/SignatureSTRParser.java
index 533b0ee53..20898bed2 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/SignatureSTRParser.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/str/SignatureSTRParser.java
@@ -105,7 +105,7 @@ public class SignatureSTRParser implements STRParser {
      */
     private Principal createPrincipalFromSAML(
         SamlAssertionWrapper samlAssertion, STRParserResult parserResult
-    ) {
+    ) throws WSSecurityException {
         SAMLTokenPrincipalImpl samlPrincipal = new 
SAMLTokenPrincipalImpl(samlAssertion);
         String confirmMethod = null;
         List<String> methods = samlAssertion.getConfirmationMethods();
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/JAASUsernameTokenValidator.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/JAASUsernameTokenValidator.java
index 53a9d9abe..224829d68 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/JAASUsernameTokenValidator.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/JAASUsernameTokenValidator.java
@@ -26,6 +26,7 @@ import javax.security.auth.login.LoginException;
 
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.common.NamePasswordCallbackHandler;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.common.dom.message.token.UsernameToken;
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/KerberosTokenValidator.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/KerberosTokenValidator.java
index e7f135a46..b4827d5c5 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/KerberosTokenValidator.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/KerberosTokenValidator.java
@@ -29,6 +29,7 @@ import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.ext.WSSecurityException.ErrorCode;
 import org.apache.wss4j.common.kerberos.KerberosServiceContext;
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/NoOpValidator.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/NoOpValidator.java
index 9984a5119..38cce8bc8 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/NoOpValidator.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/NoOpValidator.java
@@ -20,6 +20,7 @@
 package org.apache.wss4j.dom.validate;
 
 
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java
index 9303cd36a..a36b66ebc 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SamlAssertionValidator.java
@@ -23,6 +23,7 @@ import java.time.Instant;
 import java.util.List;
 
 import org.apache.wss4j.common.cache.ReplayCache;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.saml.OpenSAMLUtil;
 import org.apache.wss4j.common.saml.SAMLKeyInfo;
@@ -99,7 +100,7 @@ public class SamlAssertionValidator extends 
SignatureTrustValidator {
         if (credential == null || credential.getSamlAssertion() == null) {
             throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "noCredential");
         }
-        SamlAssertionWrapper samlAssertion = credential.getSamlAssertion();
+        SamlAssertionWrapper samlAssertion = 
(SamlAssertionWrapper)credential.getSamlAssertion();
 
         // Check the Subject Confirmation requirements
         verifySubjectConfirmationMethod(samlAssertion);
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SignatureTrustValidator.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SignatureTrustValidator.java
index 8f15004a0..83fd79c2f 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SignatureTrustValidator.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/SignatureTrustValidator.java
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.regex.Pattern;
 
 import org.apache.wss4j.common.crypto.Crypto;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
 
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/TimestampValidator.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/TimestampValidator.java
index 955d0cbaf..d5343dac2 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/TimestampValidator.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/TimestampValidator.java
@@ -20,6 +20,7 @@
 package org.apache.wss4j.dom.validate;
 
 
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.common.dom.message.token.Timestamp;
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/UsernameTokenValidator.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/UsernameTokenValidator.java
index 3fd0fb0ac..41c4574a8 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/UsernameTokenValidator.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/UsernameTokenValidator.java
@@ -27,6 +27,7 @@ import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.UnsupportedCallbackException;
 
 import org.apache.wss4j.dom.WSConstants;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.UsernameTokenUtil;
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/Validator.java 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/Validator.java
index eeebb6158..9aadbaebd 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/Validator.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/validate/Validator.java
@@ -20,6 +20,7 @@
 package org.apache.wss4j.dom.validate;
 
 
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
 
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomSamlAssertionValidator.java
 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomSamlAssertionValidator.java
index c2920c7e2..70b376c1f 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomSamlAssertionValidator.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomSamlAssertionValidator.java
@@ -22,7 +22,7 @@ package org.apache.wss4j.dom.common;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.dom.handler.RequestData;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.SamlAssertionValidator;
 
 public class CustomSamlAssertionValidator extends SamlAssertionValidator {
@@ -34,7 +34,7 @@ public class CustomSamlAssertionValidator extends 
SamlAssertionValidator {
         //
         // Do some custom validation on the assertion
         //
-        SamlAssertionWrapper samlAssertion = credential.getSamlAssertion();
+        SamlAssertionWrapper samlAssertion = 
(SamlAssertionWrapper)credential.getSamlAssertion();
         if (!"www.example.com".equals(samlAssertion.getIssuerString())) {
             throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILURE, 
"invalidSAMLsecurity");
         }
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
index 40b3acb0e..d6f99fbf7 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/token/BSTKerberosTest.java
@@ -39,7 +39,7 @@ import org.apache.wss4j.dom.message.WSSecEncrypt;
 import org.apache.wss4j.dom.message.WSSecSignature;
 import org.apache.wss4j.common.dom.message.WSSecHeader;
 import org.apache.wss4j.dom.message.WSSecTimestamp;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 
 import org.junit.jupiter.api.Test;
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java
index ff4554f1f..219a0beca 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/misc/PrincipalTest.java
@@ -52,7 +52,7 @@ import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.common.dom.message.WSSecHeader;
 import org.apache.wss4j.dom.message.WSSecSAMLToken;
 import org.apache.wss4j.dom.message.WSSecUsernameToken;
-import org.apache.wss4j.dom.validate.Credential;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.validate.Validator;
 
 import org.junit.jupiter.api.Test;
diff --git 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
index b4fa3a848..a68d59bfb 100644
--- 
a/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
+++ 
b/ws-security-dom/src/test/java/org/apache/wss4j/dom/validate/ValidatorTest.java
@@ -47,6 +47,7 @@ import 
org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandlerResult;
 import org.apache.wss4j.common.dom.message.WSSecHeader;
+import org.apache.wss4j.common.dom.validate.Credential;
 import org.apache.wss4j.dom.message.WSSecSignature;
 import org.apache.wss4j.dom.message.WSSecTimestamp;
 import org.apache.wss4j.dom.message.WSSecUsernameToken;

Reply via email to