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 2022/06/10 07:15:36 UTC
[ws-wss4j] branch master updated: PMD updates for ws-security-stax - part I
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-wss4j.git
The following commit(s) were added to refs/heads/master by this push:
new 412bc7b74 PMD updates for ws-security-stax - part I
412bc7b74 is described below
commit 412bc7b745bffd1398b7083f87f1f22cbc60f300
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Fri Jun 10 08:15:19 2022 +0100
PMD updates for ws-security-stax - part I
---
.../wss4j/stax/ext/WSSSecurityProperties.java | 8 ++--
.../processor/input/DecryptInputProcessor.java | 4 +-
.../processor/input/SAMLTokenInputHandler.java | 44 ++++++++++----------
.../input/SecurityHeaderInputProcessor.java | 2 +-
.../input/SecurityTokenReferenceInputHandler.java | 2 +-
.../processor/input/UsernameTokenInputHandler.java | 2 +-
.../WSSSignatureReferenceVerifyInputProcessor.java | 47 ++++++++++------------
.../processor/output/SAMLTokenOutputProcessor.java | 13 +++---
8 files changed, 57 insertions(+), 65 deletions(-)
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java
index 4250587fe..7d765ef3d 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/ext/WSSSecurityProperties.java
@@ -334,7 +334,7 @@ public class WSSSecurityProperties extends XMLSecurityProperties {
if (signatureWSSCrypto != null) {
return signatureWSSCrypto.getCryptoProperties();
}
- return null;
+ return null; //NOPMD
}
public void setSignatureCryptoProperties(Properties cryptoProperties) {
@@ -409,7 +409,7 @@ public class WSSSecurityProperties extends XMLSecurityProperties {
if (signatureVerificationWSSCrypto != null) {
return signatureVerificationWSSCrypto.getCryptoProperties();
}
- return null;
+ return null; //NOPMD
}
public void setSignatureVerificationCryptoProperties(Properties cryptoProperties) {
@@ -488,7 +488,7 @@ public class WSSSecurityProperties extends XMLSecurityProperties {
if (decryptionWSSCrypto != null) {
return decryptionWSSCrypto.getCryptoProperties();
}
- return null;
+ return null; //NOPMD
}
public void setDecryptionCryptoProperties(Properties cryptoProperties) {
@@ -582,7 +582,7 @@ public class WSSSecurityProperties extends XMLSecurityProperties {
if (encryptionWSSCrypto != null) {
return encryptionWSSCrypto.getCryptoProperties();
}
- return null;
+ return null; //NOPMD
}
public void setEncryptionCryptoProperties(Properties cryptoProperties) {
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/DecryptInputProcessor.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/DecryptInputProcessor.java
index 40079a37f..709d8ca5a 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/DecryptInputProcessor.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/DecryptInputProcessor.java
@@ -200,7 +200,7 @@ public class DecryptInputProcessor extends AbstractDecryptInputProcessor {
//1.) if an attachment is encrypted and signed the order is preserved
//2.) the attachments are processed after the SOAP-Document which allows us to stream everything
attachmentReferences.add(
- new DeferredAttachment(encryptedDataType, cipher, inboundSecurityToken)
+ new DeferredAttachment(encryptedDataType, cipher, inboundSecurityToken) //NOPMD
);
}
}
@@ -354,7 +354,7 @@ public class DecryptInputProcessor extends AbstractDecryptInputProcessor {
final Key symmetricKey =
inboundSecurityToken.getSecretKey(encAlgo, XMLSecurityConstants.Enc, encryptedDataType.getId());
- InputStream attachmentInputStream =
+ InputStream attachmentInputStream = //NOPMD
AttachmentUtils.setupAttachmentDecryptionStream(encAlgo, cipher, symmetricKey, attachment.getSourceStream());
Attachment resultAttachment = new Attachment();
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SAMLTokenInputHandler.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SAMLTokenInputHandler.java
index d392a6679..c47c247f3 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SAMLTokenInputHandler.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SAMLTokenInputHandler.java
@@ -232,23 +232,22 @@ public class SAMLTokenInputHandler extends AbstractInputSecurityHeaderHandler {
while (xmlSecEventIterator.hasNext()) {
XMLSecEvent xmlSecEvent = xmlSecEventIterator.next();
idx++;
- switch (xmlSecEvent.getEventType()) {
- case XMLStreamConstants.START_ELEMENT:
- QName elementName = xmlSecEvent.asStartElement().getName();
- if (WSSConstants.TAG_dsig_KeyInfo.equals(elementName)) {
- List<QName> elementPath = xmlSecEvent.asStartElement().getElementPath();
- if (elementPath.size() >= 4) {
- int lastIndex = elementPath.size() - 2;
- if ("SubjectConfirmationData".equals(elementPath.get(lastIndex).getLocalPart())
+ if (XMLStreamConstants.START_ELEMENT == xmlSecEvent.getEventType()) {
+ QName elementName = xmlSecEvent.asStartElement().getName();
+ if (WSSConstants.TAG_dsig_KeyInfo.equals(elementName)) {
+ List<QName> elementPath = xmlSecEvent.asStartElement().getElementPath();
+ if (elementPath.size() >= 4) {
+ int lastIndex = elementPath.size() - 2;
+ if ("SubjectConfirmationData".equals(elementPath.get(lastIndex).getLocalPart())
&& "SubjectConfirmation".equals(elementPath.get(lastIndex - 1).getLocalPart())
&& "Subject".equals(elementPath.get(lastIndex - 2).getLocalPart())) {
- return idx;
- } else if ("SubjectConfirmation".equals(elementPath.get(lastIndex).getLocalPart())
+ return idx;
+ } else if ("SubjectConfirmation".equals(elementPath.get(lastIndex).getLocalPart())
&& "Subject".equals(elementPath.get(lastIndex - 1).getLocalPart())) {
- return idx;
- }
+ return idx;
}
}
+ }
}
}
return idx;
@@ -260,19 +259,18 @@ public class SAMLTokenInputHandler extends AbstractInputSecurityHeaderHandler {
while (xmlSecEventIterator.hasNext()) {
XMLSecEvent xmlSecEvent = xmlSecEventIterator.next();
idx++;
- switch (xmlSecEvent.getEventType()) {
- case XMLStreamConstants.START_ELEMENT:
- QName elementName = xmlSecEvent.asStartElement().getName();
- if (WSSConstants.TAG_dsig_KeyInfo.equals(elementName)) {
- List<QName> elementPath = xmlSecEvent.asStartElement().getElementPath();
- if (elementPath.size() >= 4) {
- int lastIndex = elementPath.size() - 2;
- if ("Signature".equals(elementPath.get(lastIndex).getLocalPart())
+ if (XMLStreamConstants.START_ELEMENT == xmlSecEvent.getEventType()) {
+ QName elementName = xmlSecEvent.asStartElement().getName();
+ if (WSSConstants.TAG_dsig_KeyInfo.equals(elementName)) {
+ List<QName> elementPath = xmlSecEvent.asStartElement().getElementPath();
+ if (elementPath.size() >= 4) {
+ int lastIndex = elementPath.size() - 2;
+ if ("Signature".equals(elementPath.get(lastIndex).getLocalPart())
&& "Assertion".equals(elementPath.get(lastIndex - 1).getLocalPart())) {
- return idx;
- }
+ return idx;
}
}
+ }
}
}
return idx;
@@ -308,7 +306,7 @@ public class SAMLTokenInputHandler extends AbstractInputSecurityHeaderHandler {
loop:
while (xmlSecEventIterator.hasNext()) {
xmlSecEvent = xmlSecEventIterator.next();
- switch (xmlSecEvent.getEventType()) {
+ switch (xmlSecEvent.getEventType()) { //NOPMD
case XMLStreamConstants.END_ELEMENT:
if (xmlSecEvent.asEndElement().getName().equals(elementName)) {
break loop;
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityHeaderInputProcessor.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityHeaderInputProcessor.java
index b9cb72406..8a9932c82 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityHeaderInputProcessor.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityHeaderInputProcessor.java
@@ -85,7 +85,7 @@ public class SecurityHeaderInputProcessor extends AbstractInputProcessor {
subInputProcessorChain.reset();
xmlSecEvent = subInputProcessorChain.processHeaderEvent();
- switch (xmlSecEvent.getEventType()) {
+ switch (xmlSecEvent.getEventType()) { //NOPMD
case XMLStreamConstants.START_ELEMENT:
XMLSecStartElement xmlSecStartElement = xmlSecEvent.asStartElement();
int documentLevel = xmlSecStartElement.getDocumentLevel();
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityTokenReferenceInputHandler.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityTokenReferenceInputHandler.java
index 94708cbee..241900c9e 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityTokenReferenceInputHandler.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityTokenReferenceInputHandler.java
@@ -128,7 +128,7 @@ public class SecurityTokenReferenceInputHandler extends AbstractInputSecurityHea
public XMLSecEvent processEvent(final InputProcessorChain inputProcessorChain)
throws XMLStreamException, XMLSecurityException {
XMLSecEvent xmlSecEvent = inputProcessorChain.processEvent();
- switch (xmlSecEvent.getEventType()) {
+ switch (xmlSecEvent.getEventType()) { //NOPMD
case XMLStreamConstants.START_ELEMENT:
XMLSecStartElement xmlSecStartElement = xmlSecEvent.asStartElement();
Attribute attribute = xmlSecStartElement.getAttributeByName(this.attribute);
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/UsernameTokenInputHandler.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/UsernameTokenInputHandler.java
index 5046ea675..6ba7e9e56 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/UsernameTokenInputHandler.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/UsernameTokenInputHandler.java
@@ -76,7 +76,7 @@ public class UsernameTokenInputHandler extends AbstractInputSecurityHeaderHandle
final WSSSecurityProperties wssSecurityProperties = (WSSSecurityProperties) securityProperties;
Instant created = verifyCreated(wssSecurityProperties, usernameTokenType);
- ReplayCache replayCache = wssSecurityProperties.getNonceReplayCache();
+ ReplayCache replayCache = wssSecurityProperties.getNonceReplayCache(); //NOPMD
final EncodedString encodedNonce =
XMLSecurityUtils.getQNameType(usernameTokenType.getAny(), WSSConstants.TAG_WSSE_NONCE);
if (encodedNonce != null && replayCache != null) {
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/WSSSignatureReferenceVerifyInputProcessor.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/WSSSignatureReferenceVerifyInputProcessor.java
index 881d1bff7..8dd4f85ca 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/WSSSignatureReferenceVerifyInputProcessor.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/WSSSignatureReferenceVerifyInputProcessor.java
@@ -124,7 +124,7 @@ public class WSSSignatureReferenceVerifyInputProcessor extends AbstractSignature
final Attachment attachment = attachments.get(0);
- InputStream attachmentInputStream = attachment.getSourceStream();
+ InputStream attachmentInputStream = attachment.getSourceStream(); //NOPMD
if (!attachmentInputStream.markSupported()) {
attachmentInputStream = new BufferedInputStream(attachmentInputStream);
}
@@ -134,30 +134,27 @@ public class WSSSignatureReferenceVerifyInputProcessor extends AbstractSignature
try {
DigestOutputStream digestOutputStream =
createMessageDigestOutputStream(referenceType, inputProcessorChain.getSecurityContext());
- UnsyncBufferedOutputStream bufferedDigestOutputStream =
- new UnsyncBufferedOutputStream(digestOutputStream);
-
- if (referenceType.getTransforms() != null) {
- Transformer transformer =
- buildTransformerChain(referenceType, bufferedDigestOutputStream, inputProcessorChain, null);
- if (!(transformer instanceof AttachmentContentSignatureTransform)) {
- throw new WSSecurityException(
- WSSecurityException.ErrorCode.INVALID_SECURITY,
- "empty",
- new Object[] {"First transform must be Attachment[Content|Complete]SignatureTransform"}
- );
- }
- Map<String, Object> transformerProperties = new HashMap<>(2);
- transformerProperties.put(
- AttachmentContentSignatureTransform.ATTACHMENT, attachment);
- transformer.setProperties(transformerProperties);
-
- transformer.transform(attachmentInputStream);
+ try (UnsyncBufferedOutputStream bufferedDigestOutputStream =
+ new UnsyncBufferedOutputStream(digestOutputStream)) {
+ if (referenceType.getTransforms() != null) {
+ Transformer transformer =
+ buildTransformerChain(referenceType, bufferedDigestOutputStream, inputProcessorChain, null);
+ if (!(transformer instanceof AttachmentContentSignatureTransform)) {
+ throw new WSSecurityException(
+ WSSecurityException.ErrorCode.INVALID_SECURITY,
+ "empty",
+ new Object[]{"First transform must be Attachment[Content|Complete]SignatureTransform"}
+ );
+ }
+ Map<String, Object> transformerProperties = new HashMap<>(2);
+ transformerProperties.put(
+ AttachmentContentSignatureTransform.ATTACHMENT, attachment);
+ transformer.setProperties(transformerProperties);
- bufferedDigestOutputStream.close();
- } else {
- XMLSecurityUtils.copy(attachmentInputStream, bufferedDigestOutputStream);
- bufferedDigestOutputStream.close();
+ transformer.transform(attachmentInputStream);
+ } else {
+ XMLSecurityUtils.copy(attachmentInputStream, bufferedDigestOutputStream);
+ }
}
compareDigest(digestOutputStream.getDigestValue(), referenceType);
@@ -310,7 +307,7 @@ public class WSSSignatureReferenceVerifyInputProcessor extends AbstractSignature
private void detectReplayAttack(InputProcessorChain inputProcessorChain) throws WSSecurityException {
TimestampSecurityEvent timestampSecurityEvent =
inputProcessorChain.getSecurityContext().get(WSSConstants.PROP_TIMESTAMP_SECURITYEVENT);
- ReplayCache replayCache =
+ ReplayCache replayCache = //NOPMD
((WSSSecurityProperties)getSecurityProperties()).getTimestampReplayCache();
if (timestampSecurityEvent != null && replayCache != null) {
final String cacheKey =
diff --git a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java
index 6eab257a0..3a4cd5aa2 100644
--- a/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java
+++ b/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/SAMLTokenOutputProcessor.java
@@ -335,7 +335,7 @@ public class SAMLTokenOutputProcessor extends AbstractOutputProcessor {
return key;
}
byte[] secretKey = getSecretKeyUsingCallback();
- if (secretKey != null) {
+ if (secretKey != null && secretKey.length > 0) {
String algoFamily = JCEAlgorithmMapper.getJCEKeyAlgorithmFromURI(algorithmURI);
key = new SecretKeySpec(secretKey, algoFamily);
setSecretKey(algorithmURI, key);
@@ -398,7 +398,7 @@ public class SAMLTokenOutputProcessor extends AbstractOutputProcessor {
}
}
- return null;
+ return new X509Certificate[0];
}
@@ -413,7 +413,7 @@ public class SAMLTokenOutputProcessor extends AbstractOutputProcessor {
}
}
- return null;
+ return new byte[0];
}
@Override
@@ -488,15 +488,12 @@ public class SAMLTokenOutputProcessor extends AbstractOutputProcessor {
}
private boolean includeBST() {
- if (senderVouches
+ return senderVouches
&& getSecurityProperties().getSignatureKeyIdentifiers().contains(
WSSecurityTokenConstants.KEYIDENTIFIER_SECURITY_TOKEN_DIRECT_REFERENCE)
&& securityToken != null
&& !(WSSConstants.SAML_TOKEN_SIGNED.equals(action)
- && ((WSSSecurityProperties)getSecurityProperties()).isIncludeSignatureToken())) {
- return true;
- }
- return false;
+ && ((WSSSecurityProperties)getSecurityProperties()).isIncludeSignatureToken());
}
}