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 b0f00965 RAMPART-335 X509V3 KeyIdentifier cannot be set dynmaically
b0f00965 is described below
commit b0f0096543e1ef494b0356740ec76fda7d5def56
Author: Robert Lazarski <[email protected]>
AuthorDate: Wed Nov 6 09:18:13 2024 -1000
RAMPART-335 X509V3 KeyIdentifier cannot be set dynmaically
---
.../main/java/org/apache/rampart/util/RampartUtil.java | 5 +++++
.../java/org/apache/ws/secpolicy/model/X509Token.java | 18 +++++++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git
a/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
b/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
index 78c6ae64..2ed59869 100644
---
a/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
+++
b/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
@@ -491,6 +491,8 @@ public class RampartUtil {
return WSConstants.THUMBPRINT_IDENTIFIER;
} else if (token.isRequireEmbeddedTokenReference()) {
return WSConstants.BST_DIRECT_REFERENCE;
+ } else if (token.isRequireX509V3KeyIdentifierReference()) {
+ return WSConstants.X509_KEY_IDENTIFIER;
} else {
throw new RampartException(
"unknownKeyRefSpeficier");
@@ -1459,6 +1461,9 @@ public class RampartUtil {
} else if (x509Token.isRequireThumbprintReference()) {
secBase.setKeyIdentifierType(WSConstants.THUMBPRINT_IDENTIFIER);
tokenTypeSet = true;
+ } else if
(x509Token.isRequireX509V3KeyIdentifierReference()) {
+
secBase.setKeyIdentifierType(WSConstants.X509_KEY_IDENTIFIER);
+ tokenTypeSet = true;
} else if (log.isDebugEnabled()) {
log.debug("RampartUtil.setKeyIdentifierType()
found a Token that is an instanceof X509Token but was not able to identify the
correcc constant to set on WSSecBase.setKeyIdentifierType()" );
}
diff --git
a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/X509Token.java
b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/X509Token.java
index c81a9593..57e733b6 100644
---
a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/X509Token.java
+++
b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/X509Token.java
@@ -36,6 +36,8 @@ public class X509Token extends Token {
private boolean requireThumbprintReference;
+ private boolean requireX509V3KeyIdentifierReference;
+
private String tokenVersionAndType = Constants.WSS_X509_V3_TOKEN10;
private String encryptionUser;
@@ -120,6 +122,20 @@ public class X509Token extends Token {
this.requireThumbprintReference = requireThumbprintReference;
}
+ /**
+ * @return Returns the requireX509V3KeyIdentifierReference
+ */
+ public boolean isRequireX509V3KeyIdentifierReference() {
+ return requireX509V3KeyIdentifierReference;
+ }
+
+ /**
+ * @param requireX509V3KeyIdentifierReference The
requireX509V3KeyIdentifierReference to set
+ */
+ public void setRequireX509V3KeyIdentifierReference(boolean
requireX509V3KeyIdentifierReference) {
+ this.requireX509V3KeyIdentifierReference =
requireX509V3KeyIdentifierReference;
+ }
+
/**
* @return Returns the tokenVersionAndType.
*/
@@ -169,7 +185,7 @@ public class X509Token extends Token {
// <wsp:Policy>
writeStartElement(writer, SPConstants.POLICY);
- if (isRequireKeyIdentifierReference()) {
+ if (isRequireKeyIdentifierReference() ||
isRequireX509V3KeyIdentifierReference()) {
// <sp:RequireKeyIdentifierReference />
writeEmptyElement(writer, prefix,
SPConstants.REQUIRE_KEY_IDENTIFIRE_REFERENCE, namespaceURI);
}