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 2025/06/19 14:32:52 UTC

(ws-wss4j) branch coheigea/saml-refactor-new updated (655cbccc9 -> f680675e4)

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

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


    from 655cbccc9 Completed removing WSHandler from actions
     new c084249b0 Moving Processors to use a ServiceLoader implementation
     new b1be8a1c8 Switching Actions over to ServiceLoader
     new f680675e4 Renaming Processor method to return supported QName

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/wss4j/dom/action/Action.java   |   1 +
 .../apache/wss4j/dom/action/CustomTokenAction.java |   6 +
 .../apache/wss4j/dom/action/EncryptionAction.java  |   6 +
 .../wss4j/dom/action/EncryptionDerivedAction.java  |   5 +
 .../wss4j/dom/action/SAMLTokenSignedAction.java    |   5 +
 .../wss4j/dom/action/SAMLTokenUnsignedAction.java  |   6 +
 .../apache/wss4j/dom/action/SignatureAction.java   |   4 +
 .../dom/action/SignatureConfirmationAction.java    |   5 +
 .../wss4j/dom/action/SignatureDerivedAction.java   |   5 +
 .../apache/wss4j/dom/action/TimestampAction.java   |   6 +
 .../wss4j/dom/action/UsernameTokenAction.java      |   5 +
 .../dom/action/UsernameTokenSignedAction.java      |   5 +
 .../org/apache/wss4j/dom/engine/WSSConfig.java     | 136 ++++-----------------
 .../processor/BinarySecurityTokenProcessor.java    |   5 +
 .../dom/processor/DerivedKeyTokenProcessor.java    |   7 ++
 .../dom/processor/EncryptedAssertionProcessor.java |   5 +
 .../dom/processor/EncryptedDataProcessor.java      |   5 +
 .../wss4j/dom/processor/EncryptedKeyProcessor.java |   6 +
 .../org/apache/wss4j/dom/processor/Processor.java  |   4 +
 .../dom/processor/ReferenceListProcessor.java      |   6 +
 .../wss4j/dom/processor/SAMLTokenProcessor.java    |   6 +
 .../processor/SecurityContextTokenProcessor.java   |   5 +
 .../processor/SignatureConfirmationProcessor.java  |   7 ++
 .../wss4j/dom/processor/SignatureProcessor.java    |   6 +
 .../wss4j/dom/processor/TimestampProcessor.java    |   6 +
 .../dom/processor/UsernameTokenProcessor.java      |   7 ++
 .../services/org.apache.wss4j.dom.action.Action    |  11 ++
 .../org.apache.wss4j.dom.processor.Processor       |  12 ++
 .../org/apache/wss4j/dom/common/CustomAction.java  |   6 +
 .../apache/wss4j/dom/common/CustomProcessor.java   |  11 ++
 30 files changed, 201 insertions(+), 109 deletions(-)
 create mode 100644 ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.action.Action
 create mode 100644 ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.processor.Processor


(ws-wss4j) 01/03: Moving Processors to use a ServiceLoader implementation

Posted by co...@apache.org.
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 c084249b03913eacd7e1242c100795858fa939b5
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Thu Jun 19 14:18:40 2025 +0100

    Moving Processors to use a ServiceLoader implementation
---
 .../org/apache/wss4j/dom/engine/WSSConfig.java     | 73 ++++------------------
 .../processor/BinarySecurityTokenProcessor.java    |  5 ++
 .../dom/processor/DerivedKeyTokenProcessor.java    |  7 +++
 .../dom/processor/EncryptedAssertionProcessor.java |  5 ++
 .../dom/processor/EncryptedDataProcessor.java      |  5 ++
 .../wss4j/dom/processor/EncryptedKeyProcessor.java |  6 ++
 .../org/apache/wss4j/dom/processor/Processor.java  |  4 ++
 .../dom/processor/ReferenceListProcessor.java      |  6 ++
 .../wss4j/dom/processor/SAMLTokenProcessor.java    |  6 ++
 .../processor/SecurityContextTokenProcessor.java   |  5 ++
 .../processor/SignatureConfirmationProcessor.java  |  7 +++
 .../wss4j/dom/processor/SignatureProcessor.java    |  6 ++
 .../wss4j/dom/processor/TimestampProcessor.java    |  6 ++
 .../dom/processor/UsernameTokenProcessor.java      |  7 +++
 .../org.apache.wss4j.dom.processor.Processor       | 12 ++++
 .../apache/wss4j/dom/common/CustomProcessor.java   | 11 ++++
 16 files changed, 111 insertions(+), 60 deletions(-)

diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
index 7063ad5ed..028367fef 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
@@ -133,71 +133,24 @@ public final class WSSConfig {
 
     /**
      * The default collection of processors supported by the toolkit
+     * 
+     * Instead of hard-coding, you can use Java's ServiceLoader mechanism to discover Processor implementations
+     * at runtime. Each Processor implementation should be registered in
+     * META-INF/services/org.apache.wss4j.dom.processor.Processor with its fully qualified class name.
+     * 
+     * You will still need to map QNames to Processor classes. This can be done by having each Processor
+     * implementation provide a method (e.g., getQNames()) that returns the QNames it supports.
      */
     private static final Map<QName, Class<?>> DEFAULT_PROCESSORS;
     static {
         final Map<QName, Class<?>> tmp = new HashMap<>();
         try {
-            tmp.put(
-                WSConstants.SAML_TOKEN,
-                org.apache.wss4j.dom.processor.SAMLTokenProcessor.class
-            );
-            tmp.put(
-                WSConstants.SAML2_TOKEN,
-                org.apache.wss4j.dom.processor.SAMLTokenProcessor.class
-            );
-            tmp.put(
-                WSConstants.ENCRYPTED_ASSERTION,
-                org.apache.wss4j.dom.processor.EncryptedAssertionProcessor.class
-            );
-            tmp.put(
-                WSConstants.ENCRYPTED_KEY,
-                org.apache.wss4j.dom.processor.EncryptedKeyProcessor.class
-            );
-            tmp.put(
-                WSConstants.SIGNATURE,
-                org.apache.wss4j.dom.processor.SignatureProcessor.class
-            );
-            tmp.put(
-                WSConstants.TIMESTAMP,
-                org.apache.wss4j.dom.processor.TimestampProcessor.class
-            );
-            tmp.put(
-                WSConstants.USERNAME_TOKEN,
-                org.apache.wss4j.dom.processor.UsernameTokenProcessor.class
-            );
-            tmp.put(
-                WSConstants.REFERENCE_LIST,
-                org.apache.wss4j.dom.processor.ReferenceListProcessor.class
-            );
-            tmp.put(
-                WSConstants.SIGNATURE_CONFIRMATION,
-                org.apache.wss4j.dom.processor.SignatureConfirmationProcessor.class
-            );
-            tmp.put(
-                WSConstants.DERIVED_KEY_TOKEN_05_02,
-                org.apache.wss4j.dom.processor.DerivedKeyTokenProcessor.class
-            );
-            tmp.put(
-                WSConstants.DERIVED_KEY_TOKEN_05_12,
-                tmp.get(WSConstants.DERIVED_KEY_TOKEN_05_02)
-            );
-            tmp.put(
-                WSConstants.SECURITY_CONTEXT_TOKEN_05_02,
-                org.apache.wss4j.dom.processor.SecurityContextTokenProcessor.class
-            );
-            tmp.put(
-                WSConstants.SECURITY_CONTEXT_TOKEN_05_12,
-                tmp.get(WSConstants.SECURITY_CONTEXT_TOKEN_05_02)
-            );
-            tmp.put(
-                WSConstants.BINARY_TOKEN,
-                org.apache.wss4j.dom.processor.BinarySecurityTokenProcessor.class
-            );
-            tmp.put(
-                WSConstants.ENCRYPTED_DATA,
-                org.apache.wss4j.dom.processor.EncryptedDataProcessor.class
-            );
+            java.util.ServiceLoader<Processor> loader = java.util.ServiceLoader.load(Processor.class);
+            for (Processor processor : loader) {
+                for (QName qname : processor.getQNames()) {
+                    tmp.put(qname, processor.getClass());
+                }
+            }
         } catch (final Exception ex) {
             LOG.debug(ex.getMessage(), ex);
         }
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 54b25ad6c..a75482c8f 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
@@ -181,4 +181,9 @@ public class BinarySecurityTokenProcessor implements Processor {
         return token;
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.BINARY_TOKEN};
+    }
+
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java
index b02091507..3959babef 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java
@@ -22,6 +22,8 @@ package org.apache.wss4j.dom.processor;
 import java.util.Collections;
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
 import org.w3c.dom.Element;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
@@ -92,5 +94,10 @@ public class DerivedKeyTokenProcessor implements Processor {
         return Collections.singletonList(result);
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.DERIVED_KEY_TOKEN_05_02, WSConstants.DERIVED_KEY_TOKEN_05_12};
+    }
+
 
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java
index 72c597b01..5fb5f9e71 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java
@@ -125,4 +125,9 @@ public class EncryptedAssertionProcessor implements Processor {
         return Collections.emptyList();
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.ENCRYPTED_ASSERTION};
+    }
+
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java
index 815bd47d5..3b1aa3f7d 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java
@@ -221,4 +221,9 @@ public class EncryptedDataProcessor implements Processor {
             bspEnforcer.handleBSPRule(BSPRule.R5620);
         }
     }
+
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.ENCRYPTED_DATA};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java
index c80ffad95..2bec768c1 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java
@@ -32,6 +32,7 @@ import javax.crypto.Cipher;
 import javax.crypto.KeyGenerator;
 import javax.crypto.SecretKey;
 import javax.crypto.spec.OAEPParameterSpec;
+import javax.xml.namespace.QName;
 
 import org.apache.wss4j.common.WSS4JConstants;
 import org.apache.wss4j.common.token.DOMX509SKI;
@@ -807,4 +808,9 @@ public class EncryptedKeyProcessor implements Processor {
             }
         }
     }
+
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.ENCRYPTED_KEY};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java
index f675a41ea..e71e8552a 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java
@@ -26,6 +26,8 @@ import org.w3c.dom.Element;
 
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
 public interface Processor {
 
     List<WSSecurityEngineResult> handleToken(
@@ -33,4 +35,6 @@ public interface Processor {
         RequestData request
     ) throws WSSecurityException;
 
+    QName[] getQNames();
+
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java
index 7054399c7..9b2ae2949 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.List;
 
 import javax.crypto.SecretKey;
+import javax.xml.namespace.QName;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -241,5 +242,10 @@ public class ReferenceListProcessor implements Processor {
         }
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.REFERENCE_LIST};
+    }
+
 }
 
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 fce6ecb13..2b5808241 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
@@ -284,4 +284,10 @@ public class SAMLTokenProcessor implements Processor {
 
         return protectedRefs;
     }
+
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.SAML_TOKEN, WSConstants.SAML2_TOKEN};
+    }
+
 }
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 d86462842..1b806e094 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
@@ -117,4 +117,9 @@ public class SecurityContextTokenProcessor implements Processor {
         return callback.getKey();
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.SECURITY_CONTEXT_TOKEN_05_02, WSConstants.SECURITY_CONTEXT_TOKEN_05_12};
+    }
+
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java
index 78d89635f..d6ddc520d 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java
@@ -28,6 +28,8 @@ import org.w3c.dom.Element;
 
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
 public class SignatureConfirmationProcessor implements Processor {
     private static final org.slf4j.Logger LOG =
         org.slf4j.LoggerFactory.getLogger(SignatureConfirmationProcessor.class);
@@ -53,4 +55,9 @@ public class SignatureConfirmationProcessor implements Processor {
         return java.util.Collections.singletonList(result);
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.SIGNATURE_CONFIRMATION};
+    }
+
 }
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 c63a93da9..1a257cc62 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
@@ -45,6 +45,7 @@ import javax.xml.crypto.dsig.XMLValidateContext;
 import javax.xml.crypto.dsig.dom.DOMValidateContext;
 import javax.xml.crypto.dsig.spec.ExcC14NParameterSpec;
 import javax.xml.crypto.dsig.spec.HMACParameterSpec;
+import javax.xml.namespace.QName;
 
 import org.apache.wss4j.common.bsp.BSPEnforcer;
 import org.apache.wss4j.common.bsp.BSPRule;
@@ -763,4 +764,9 @@ public class SignatureProcessor implements Processor {
         }
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.SIGNATURE};
+    }
+
 }
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 7e39f2d60..2bf1deccb 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
@@ -21,6 +21,8 @@ package org.apache.wss4j.dom.processor;
 
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
@@ -65,4 +67,8 @@ public class TimestampProcessor implements Processor {
         return java.util.Collections.singletonList(result);
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.TIMESTAMP};
+    }
 }
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 9a921e2ae..44b787f80 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
@@ -22,6 +22,8 @@ package org.apache.wss4j.dom.processor;
 import java.time.Instant;
 import java.util.List;
 
+import javax.xml.namespace.QName;
+
 import org.apache.wss4j.common.principal.SAMLTokenPrincipalImpl;
 import org.apache.wss4j.common.principal.WSUsernameTokenPrincipalImpl;
 import org.apache.wss4j.common.util.UsernameTokenUtil;
@@ -175,4 +177,9 @@ public class UsernameTokenProcessor implements Processor {
         return credential;
     }
 
+    @Override
+    public QName[] getQNames() {
+        return new QName[]{WSConstants.USERNAME_TOKEN};
+    }
+
 }
diff --git a/ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.processor.Processor b/ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.processor.Processor
new file mode 100644
index 000000000..d3dec920d
--- /dev/null
+++ b/ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.processor.Processor
@@ -0,0 +1,12 @@
+org.apache.wss4j.dom.processor.BinarySecurityTokenProcessor
+org.apache.wss4j.dom.processor.DerivedKeyTokenProcessor
+org.apache.wss4j.dom.processor.EncryptedAssertionProcessor
+org.apache.wss4j.dom.processor.EncryptedDataProcessor
+org.apache.wss4j.dom.processor.EncryptedKeyProcessor
+org.apache.wss4j.dom.processor.ReferenceListProcessor
+org.apache.wss4j.dom.processor.SAMLTokenProcessor
+org.apache.wss4j.dom.processor.SecurityContextTokenProcessor
+org.apache.wss4j.dom.processor.SignatureProcessor
+org.apache.wss4j.dom.processor.SignatureConfirmationProcessor
+org.apache.wss4j.dom.processor.TimestampProcessor
+org.apache.wss4j.dom.processor.UsernameTokenProcessor
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java
index ebbab0545..baad8ecf1 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java
@@ -23,6 +23,9 @@ import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.processor.Processor;
 import org.apache.wss4j.dom.WSConstants;
+
+import javax.xml.namespace.QName;
+
 import org.apache.wss4j.common.dom.engine.WSSecurityEngineResult;
 
 /**
@@ -41,4 +44,12 @@ public class CustomProcessor implements Processor {
         return java.util.Collections.singletonList(result);
     }
 
+    @Override
+    public QName[] getQNames() {
+        // TODO Auto-generated method stub
+        throw new UnsupportedOperationException("Unimplemented method 'getQNames'");
+    }
+
+    
+
 }


(ws-wss4j) 02/03: Switching Actions over to ServiceLoader

Posted by co...@apache.org.
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 b1be8a1c8c9e1dfc47ee52462e100919b7a2171c
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Thu Jun 19 15:29:02 2025 +0100

    Switching Actions over to ServiceLoader
---
 .../java/org/apache/wss4j/dom/action/Action.java   |  1 +
 .../apache/wss4j/dom/action/CustomTokenAction.java |  6 +++
 .../apache/wss4j/dom/action/EncryptionAction.java  |  6 +++
 .../wss4j/dom/action/EncryptionDerivedAction.java  |  5 ++
 .../wss4j/dom/action/SAMLTokenSignedAction.java    |  5 ++
 .../wss4j/dom/action/SAMLTokenUnsignedAction.java  |  6 +++
 .../apache/wss4j/dom/action/SignatureAction.java   |  4 ++
 .../dom/action/SignatureConfirmationAction.java    |  5 ++
 .../wss4j/dom/action/SignatureDerivedAction.java   |  5 ++
 .../apache/wss4j/dom/action/TimestampAction.java   |  6 +++
 .../wss4j/dom/action/UsernameTokenAction.java      |  5 ++
 .../dom/action/UsernameTokenSignedAction.java      |  5 ++
 .../org/apache/wss4j/dom/engine/WSSConfig.java     | 63 +++++-----------------
 .../services/org.apache.wss4j.dom.action.Action    | 11 ++++
 .../org/apache/wss4j/dom/common/CustomAction.java  |  6 +++
 15 files changed, 90 insertions(+), 49 deletions(-)

diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
index 488c0cce8..a4d6be291 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/Action.java
@@ -33,4 +33,5 @@ public interface Action {
         RequestData reqData
     ) throws WSSecurityException;
 
+    Integer[] getSupportedActions();
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
index 0551d9079..0138cefe0 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/CustomTokenAction.java
@@ -22,6 +22,7 @@ package org.apache.wss4j.dom.action;
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.w3c.dom.Element;
 
@@ -67,4 +68,9 @@ public class CustomTokenAction implements Action {
                     "empty", new Object[] {"Error appending custom token"});
         }
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.CUSTOM_TOKEN};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
index 8179dde15..82438dea5 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionAction.java
@@ -33,6 +33,7 @@ import org.apache.wss4j.common.crypto.CryptoType;
 import org.apache.wss4j.common.ext.WSPasswordCallback;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.util.KeyUtils;
+import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.message.WSSecEncrypt;
@@ -149,4 +150,9 @@ public class EncryptionAction implements Action {
                                           new Object[] {"Error during encryption: "});
         }
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.ENCR};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
index 4ce59bd7c..673d7a71d 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/EncryptionDerivedAction.java
@@ -187,4 +187,9 @@ public class EncryptionDerivedAction extends AbstractDerivedAction implements Ac
             return passwordCallback.getKey();
         }
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.DKT_ENCR};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
index 379ba538c..78f575593 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenSignedAction.java
@@ -113,4 +113,9 @@ public class SAMLTokenSignedAction implements Action {
         }
     }
 
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.ST_SIGNED};
+    }
+
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
index 9c26d4743..497d17550 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SAMLTokenUnsignedAction.java
@@ -26,6 +26,7 @@ import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.saml.SAMLCallback;
 import org.apache.wss4j.common.saml.SAMLUtil;
+import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.message.WSSecSAMLToken;
 
@@ -68,4 +69,9 @@ public class SAMLTokenUnsignedAction implements Action {
             reqData.getSignatureValues().add(signatureValue);
         }
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.ST_UNSIGNED};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
index 5bffc2fc2..9b5f317ae 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureAction.java
@@ -172,4 +172,8 @@ public class SignatureAction implements Action {
         }
     }
 
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.SIGN};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
index 2647f7c9b..e06c50a3a 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
@@ -91,4 +91,9 @@ public class SignatureConfirmationAction implements Action {
         reqData.getMsgContext().put(WSHandlerConstants.SIG_CONF_DONE, "");
     }
 
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.SC};
+    }
+
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
index e905ec65a..2e83c4ccc 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureDerivedAction.java
@@ -221,4 +221,9 @@ public class SignatureDerivedAction extends AbstractDerivedAction implements Act
             return passwordCallback.getKey();
         }
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.DKT_SIGN};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
index 338fef35b..5cd1aff6c 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/TimestampAction.java
@@ -21,6 +21,7 @@ package org.apache.wss4j.dom.action;
 
 import org.apache.wss4j.common.SecurityActionToken;
 import org.apache.wss4j.common.ext.WSSecurityException;
+import org.apache.wss4j.dom.WSConstants;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.message.WSSecTimestamp;
 
@@ -40,4 +41,9 @@ public class TimestampAction implements Action {
         timeStampBuilder.setExpandXopInclude(reqData.isExpandXopInclude());
         timeStampBuilder.build();
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.TS};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
index 934e4c92c..d953708ab 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenAction.java
@@ -68,4 +68,9 @@ public class UsernameTokenAction implements Action {
 
         builder.build();
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.UT, WSConstants.UT_NOPASSWORD};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
index 0f4ae3367..a30f7310c 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/UsernameTokenSignedAction.java
@@ -146,4 +146,9 @@ public class UsernameTokenSignedAction implements Action {
 
         Arrays.fill(salt, (byte)0);
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        return new Integer[]{WSConstants.UT_SIGN};
+    }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
index 028367fef..28e076aeb 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
@@ -71,60 +71,25 @@ public final class WSSConfig {
         org.slf4j.LoggerFactory.getLogger(WSSConfig.class);
 
     /**
-     * The default collection of actions supported by the toolkit.
+     * The default collection of actions supported by the toolkit
+     * 
+     * Instead of hard-coding, you can use Java's ServiceLoader mechanism to discover Action implementations
+     * at runtime. Each Action implementation should be registered in
+     * META-INF/services/org.apache.wss4j.dom.action.Action with its fully qualified class name.
+     * 
+     * You will still need to map Integers to Action classes. This can be done by having each Action
+     * implementation provide a method (e.g., getSupportedActions()) that returns the Integer actions it supports.
      */
     private static final Map<Integer, Class<?>> DEFAULT_ACTIONS;
     static {
         final Map<Integer, Class<?>> tmp = new HashMap<>();
         try {
-            tmp.put(
-                WSConstants.UT,
-                org.apache.wss4j.dom.action.UsernameTokenAction.class
-            );
-            tmp.put(
-                WSConstants.UT_NOPASSWORD,
-                org.apache.wss4j.dom.action.UsernameTokenAction.class
-            );
-            tmp.put(
-                WSConstants.ENCR,
-                org.apache.wss4j.dom.action.EncryptionAction.class
-            );
-            tmp.put(
-                WSConstants.SIGN,
-                org.apache.wss4j.dom.action.SignatureAction.class
-            );
-            tmp.put(
-                WSConstants.DKT_SIGN,
-                org.apache.wss4j.dom.action.SignatureDerivedAction.class
-            );
-            tmp.put(
-                WSConstants.DKT_ENCR,
-                org.apache.wss4j.dom.action.EncryptionDerivedAction.class
-            );
-            tmp.put(
-                WSConstants.ST_SIGNED,
-                org.apache.wss4j.dom.action.SAMLTokenSignedAction.class
-            );
-            tmp.put(
-                WSConstants.ST_UNSIGNED,
-                org.apache.wss4j.dom.action.SAMLTokenUnsignedAction.class
-            );
-            tmp.put(
-                WSConstants.TS,
-                org.apache.wss4j.dom.action.TimestampAction.class
-            );
-            tmp.put(
-                WSConstants.UT_SIGN,
-                org.apache.wss4j.dom.action.UsernameTokenSignedAction.class
-            );
-            tmp.put(
-                WSConstants.SC,
-                org.apache.wss4j.dom.action.SignatureConfirmationAction.class
-            );
-            tmp.put(
-                WSConstants.CUSTOM_TOKEN,
-                org.apache.wss4j.dom.action.CustomTokenAction.class
-            );
+            java.util.ServiceLoader<Action> loader = java.util.ServiceLoader.load(Action.class);
+            for (Action action : loader) {
+                for (Integer supportedAction : action.getSupportedActions()) {
+                    tmp.put(supportedAction, action.getClass());
+                }
+            }
         } catch (final Exception ex) {
             LOG.debug(ex.getMessage(), ex);
         }
diff --git a/ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.action.Action b/ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.action.Action
new file mode 100644
index 000000000..e7d7ae6d2
--- /dev/null
+++ b/ws-security-dom/src/main/resources/META-INF/services/org.apache.wss4j.dom.action.Action
@@ -0,0 +1,11 @@
+org.apache.wss4j.dom.action.CustomTokenAction
+org.apache.wss4j.dom.action.EncryptionAction
+org.apache.wss4j.dom.action.EncryptionDerivedAction
+org.apache.wss4j.dom.action.SAMLTokenSignedAction
+org.apache.wss4j.dom.action.SAMLTokenUnsignedAction
+org.apache.wss4j.dom.action.SignatureAction
+org.apache.wss4j.dom.action.SignatureConfirmationAction
+org.apache.wss4j.dom.action.SignatureDerivedAction
+org.apache.wss4j.dom.action.TimestampAction
+org.apache.wss4j.dom.action.UsernameTokenAction
+org.apache.wss4j.dom.action.UsernameTokenSignedAction
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java
index fac9d212a..bf6ba716f 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomAction.java
@@ -44,4 +44,10 @@ public class CustomAction implements Action {
             reqData.setMsgContext(Map.of("bread", "crumb"));
         }
     }
+
+    @Override
+    public Integer[] getSupportedActions() {
+        // TODO Auto-generated method stub
+        throw new UnsupportedOperationException("Unimplemented method 'getSupportedActions'");
+    }
 }


(ws-wss4j) 03/03: Renaming Processor method to return supported QName

Posted by co...@apache.org.
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 f680675e4798f727179b5f9e521f1ce3dc3336af
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Thu Jun 19 15:30:24 2025 +0100

    Renaming Processor method to return supported QName
---
 .../src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java          | 4 ++--
 .../org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java  | 2 +-
 .../java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java | 2 +-
 .../org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java   | 2 +-
 .../java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java   | 2 +-
 .../java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java    | 2 +-
 .../src/main/java/org/apache/wss4j/dom/processor/Processor.java       | 2 +-
 .../java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java   | 2 +-
 .../main/java/org/apache/wss4j/dom/processor/SAMLTokenProcessor.java  | 2 +-
 .../org/apache/wss4j/dom/processor/SecurityContextTokenProcessor.java | 2 +-
 .../apache/wss4j/dom/processor/SignatureConfirmationProcessor.java    | 2 +-
 .../main/java/org/apache/wss4j/dom/processor/SignatureProcessor.java  | 2 +-
 .../main/java/org/apache/wss4j/dom/processor/TimestampProcessor.java  | 2 +-
 .../java/org/apache/wss4j/dom/processor/UsernameTokenProcessor.java   | 2 +-
 .../src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java    | 2 +-
 15 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
index 28e076aeb..1aed92d0a 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
@@ -104,7 +104,7 @@ public final class WSSConfig {
      * META-INF/services/org.apache.wss4j.dom.processor.Processor with its fully qualified class name.
      * 
      * You will still need to map QNames to Processor classes. This can be done by having each Processor
-     * implementation provide a method (e.g., getQNames()) that returns the QNames it supports.
+     * implementation provide a method (e.g., getSupportedQNames()) that returns the QNames it supports.
      */
     private static final Map<QName, Class<?>> DEFAULT_PROCESSORS;
     static {
@@ -112,7 +112,7 @@ public final class WSSConfig {
         try {
             java.util.ServiceLoader<Processor> loader = java.util.ServiceLoader.load(Processor.class);
             for (Processor processor : loader) {
-                for (QName qname : processor.getQNames()) {
+                for (QName qname : processor.getSupportedQNames()) {
                     tmp.put(qname, processor.getClass());
                 }
             }
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 a75482c8f..14a19d584 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
@@ -182,7 +182,7 @@ public class BinarySecurityTokenProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.BINARY_TOKEN};
     }
 
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java
index 3959babef..340a72b32 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/DerivedKeyTokenProcessor.java
@@ -95,7 +95,7 @@ public class DerivedKeyTokenProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.DERIVED_KEY_TOKEN_05_02, WSConstants.DERIVED_KEY_TOKEN_05_12};
     }
 
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java
index 5fb5f9e71..3707c31e7 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedAssertionProcessor.java
@@ -126,7 +126,7 @@ public class EncryptedAssertionProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.ENCRYPTED_ASSERTION};
     }
 
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java
index 3b1aa3f7d..4ad6402d7 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedDataProcessor.java
@@ -223,7 +223,7 @@ public class EncryptedDataProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.ENCRYPTED_DATA};
     }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java
index 2bec768c1..cfa039e8b 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/EncryptedKeyProcessor.java
@@ -810,7 +810,7 @@ public class EncryptedKeyProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.ENCRYPTED_KEY};
     }
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java
index e71e8552a..8c40d97cf 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/Processor.java
@@ -35,6 +35,6 @@ public interface Processor {
         RequestData request
     ) throws WSSecurityException;
 
-    QName[] getQNames();
+    QName[] getSupportedQNames();
 
 }
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java
index 9b2ae2949..f238f153f 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/ReferenceListProcessor.java
@@ -243,7 +243,7 @@ public class ReferenceListProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.REFERENCE_LIST};
     }
 
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 2b5808241..47d2e902b 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
@@ -286,7 +286,7 @@ public class SAMLTokenProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.SAML_TOKEN, WSConstants.SAML2_TOKEN};
     }
 
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 1b806e094..77915fee8 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
@@ -118,7 +118,7 @@ public class SecurityContextTokenProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.SECURITY_CONTEXT_TOKEN_05_02, WSConstants.SECURITY_CONTEXT_TOKEN_05_12};
     }
 
diff --git a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java
index d6ddc520d..7de7a1a7c 100644
--- a/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java
+++ b/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/SignatureConfirmationProcessor.java
@@ -56,7 +56,7 @@ public class SignatureConfirmationProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.SIGNATURE_CONFIRMATION};
     }
 
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 1a257cc62..add2f9fba 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
@@ -765,7 +765,7 @@ public class SignatureProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.SIGNATURE};
     }
 
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 2bf1deccb..1086d77a3 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
@@ -68,7 +68,7 @@ public class TimestampProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.TIMESTAMP};
     }
 }
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 44b787f80..f8d6e73bf 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
@@ -178,7 +178,7 @@ public class UsernameTokenProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         return new QName[]{WSConstants.USERNAME_TOKEN};
     }
 
diff --git a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java
index baad8ecf1..d8d64f3cf 100644
--- a/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java
+++ b/ws-security-dom/src/test/java/org/apache/wss4j/dom/common/CustomProcessor.java
@@ -45,7 +45,7 @@ public class CustomProcessor implements Processor {
     }
 
     @Override
-    public QName[] getQNames() {
+    public QName[] getSupportedQNames() {
         // TODO Auto-generated method stub
         throw new UnsupportedOperationException("Unimplemented method 'getQNames'");
     }