You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2021/02/23 08:50:34 UTC
[santuario-xml-security-java] branch master updated: Fixing PMD
issues
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/santuario-xml-security-java.git
The following commit(s) were added to refs/heads/master by this push:
new feffbcd Fixing PMD issues
feffbcd is described below
commit feffbcd9dcf2612110e238db918b1691787138de
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Tue Feb 23 08:50:18 2021 +0000
Fixing PMD issues
---
etc/santuario-pmd-ruleset.xml | 7 +-
pom.xml | 2 +-
src/main/java/org/apache/xml/security/Init.java | 2 +-
.../c14n/implementations/CanonicalizerBase.java | 4 +-
.../security/encryption/AbstractSerializer.java | 9 +-
.../xml/security/signature/XMLSignatureInput.java | 2 +-
.../input/AbstractDecryptInputProcessor.java | 18 ++--
.../output/AbstractEncryptOutputProcessor.java | 4 +-
.../output/AbstractSignatureOutputProcessor.java | 4 +-
.../canonicalizer/CanonicalizerBase.java | 4 +-
.../apache/xml/security/utils/RFC2253Parser.java | 114 +++++++++++----------
.../org/apache/xml/security/utils/XMLUtils.java | 2 +-
.../implementations/ResolverLocalFilesystem.java | 2 +-
13 files changed, 90 insertions(+), 84 deletions(-)
diff --git a/etc/santuario-pmd-ruleset.xml b/etc/santuario-pmd-ruleset.xml
index e2ea275..6879d06 100644
--- a/etc/santuario-pmd-ruleset.xml
+++ b/etc/santuario-pmd-ruleset.xml
@@ -29,9 +29,12 @@
<exclude name="AccessorMethodGeneration" />
<exclude name="ArrayIsStoredDirectly" />
<exclude name="AvoidReassigningParameters" />
+ <exclude name="AvoidReassigningLoopVariables" />
<exclude name="AvoidUsingHardCodedIP" />
+ <exclude name="AvoidMessageDigestField" />
<exclude name="ConstantsInInterface" />
<exclude name="ForLoopCanBeForeach" />
+ <exclude name="ForLoopVariableCount" />
<exclude name="GuardLogStatement" />
<exclude name="JUnitAssertionsShouldIncludeMessage"/>
<exclude name="JUnitTestContainsTooManyAsserts" />
@@ -43,6 +46,7 @@
<exclude name="PreserveStackTrace" />
<exclude name="SwitchStmtsShouldHaveDefault" />
<exclude name="SystemPrintln" />
+ <exclude name="UnusedAssignment" />
<exclude name="UnusedPrivateMethod" />
<exclude name="UseAssertSameInsteadOfAssertTrue" />
<exclude name="UseVarargs" />
@@ -54,6 +58,7 @@
<exclude name="AvoidRethrowingException" />
<exclude name="AvoidThrowingNullPointerException" />
<exclude name="AvoidThrowingRawExceptionTypes" />
+ <exclude name="AvoidUncheckedExceptionsInSignatures" />
<exclude name="CouplingBetweenObjects" />
<exclude name="CyclomaticComplexity" />
<exclude name="DataClass" />
@@ -90,7 +95,7 @@
<exclude name="DataflowAnomalyAnalysis" />
<exclude name="DoNotCallGarbageCollectionExplicitly" />
<exclude name="EmptyCatchBlock" />
- <exclude name="InvalidSlf4jMessageFormat" />
+ <exclude name="InvalidLogMessageFormat" />
<exclude name="JUnitSpelling" />
<exclude name="MissingSerialVersionUID" />
<exclude name="NullAssignment" />
diff --git a/pom.xml b/pom.xml
index 0f23f67..b39f928 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,7 +118,7 @@
<sourceEncoding>UTF-8</sourceEncoding>
<failOnViolation>true</failOnViolation>
<verbose>true</verbose>
- <includeTests>true</includeTests>
+ <includeTests>false</includeTests>
<targetJdk>${targetJdk}</targetJdk>
</configuration>
<executions>
diff --git a/src/main/java/org/apache/xml/security/Init.java b/src/main/java/org/apache/xml/security/Init.java
index 788e38b..64d3c2e 100644
--- a/src/main/java/org/apache/xml/security/Init.java
+++ b/src/main/java/org/apache/xml/security/Init.java
@@ -76,7 +76,7 @@ public class Init {
return;
}
- InputStream is =
+ InputStream is = //NOPMD
AccessController.doPrivileged(
(PrivilegedAction<InputStream>)
() -> {
diff --git a/src/main/java/org/apache/xml/security/c14n/implementations/CanonicalizerBase.java b/src/main/java/org/apache/xml/security/c14n/implementations/CanonicalizerBase.java
index 06852a2..473199b 100644
--- a/src/main/java/org/apache/xml/security/c14n/implementations/CanonicalizerBase.java
+++ b/src/main/java/org/apache/xml/security/c14n/implementations/CanonicalizerBase.java
@@ -207,7 +207,7 @@ public abstract class CanonicalizerBase extends CanonicalizerSpi {
Node sibling = null;
Node parentNode = null;
Map<String, byte[]> cache = new HashMap<>();
- do {
+ do { //NOPMD
switch (currentNode.getNodeType()) {
case Node.ENTITY_NODE :
@@ -334,7 +334,7 @@ public abstract class CanonicalizerBase extends CanonicalizerSpi {
Node parentNode = null;
int documentLevel = NODE_BEFORE_DOCUMENT_ELEMENT;
Map<String, byte[]> cache = new HashMap<>();
- do {
+ do { //NOPMD
switch (currentNode.getNodeType()) {
case Node.ENTITY_NODE :
diff --git a/src/main/java/org/apache/xml/security/encryption/AbstractSerializer.java b/src/main/java/org/apache/xml/security/encryption/AbstractSerializer.java
index 2beee67..38142e5 100644
--- a/src/main/java/org/apache/xml/security/encryption/AbstractSerializer.java
+++ b/src/main/java/org/apache/xml/security/encryption/AbstractSerializer.java
@@ -21,7 +21,6 @@ package org.apache.xml.security.encryption;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@@ -84,8 +83,8 @@ public abstract class AbstractSerializer implements Serializer {
protected static byte[] createContext(byte[] source, Node ctx) throws XMLEncryptionException {
// Create the context to parse the document against
- try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
- OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream, StandardCharsets.UTF_8);
+ try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream, StandardCharsets.UTF_8)) {
outputStreamWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?><dummy");
// Run through each node up to the document node and find any xmlns: nodes
@@ -94,7 +93,7 @@ public abstract class AbstractSerializer implements Serializer {
while (wk != null) {
NamedNodeMap atts = wk.getAttributes();
if (atts != null) {
- for (int i = 0; i < atts.getLength(); ++i) {
+ for (int i = 0; i < atts.getLength(); ++i) { //NOPMD
Node att = atts.item(i);
String nodeName = att.getNodeName();
if (("xmlns".equals(nodeName) || nodeName.startsWith("xmlns:"))
@@ -118,8 +117,6 @@ public abstract class AbstractSerializer implements Serializer {
outputStreamWriter.close();
return byteArrayOutputStream.toByteArray();
- } catch (UnsupportedEncodingException e) {
- throw new XMLEncryptionException(e);
} catch (IOException e) {
throw new XMLEncryptionException(e);
}
diff --git a/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java b/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java
index 43882cc..491d3f7 100644
--- a/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java
+++ b/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java
@@ -524,7 +524,7 @@ public class XMLSignatureInput {
if (inputOctetStreamProxy == null) {
return null;
}
- try {
+ try { //NOPMD
bytes = JavaUtils.getBytesFromStream(inputOctetStreamProxy);
} finally {
inputOctetStreamProxy.close();
diff --git a/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java b/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java
index 4d1c174..a4695cf 100644
--- a/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java
+++ b/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java
@@ -281,7 +281,7 @@ public abstract class AbstractDecryptInputProcessor extends AbstractInputProcess
nextEvent = subInputProcessorChain.processEvent();
}
- InputStream decryptInputStream = null;
+ InputStream decryptInputStream = null; //NOPMD
if (nextEvent.isStartElement() && nextEvent.asStartElement().getName().equals(XMLSecurityConstants.TAG_XOP_INCLUDE)) {
try {
// Unmarshal the XOP Include Element
@@ -329,8 +329,8 @@ public abstract class AbstractDecryptInputProcessor extends AbstractInputProcess
decryptInputStream = decryptionThread.getPipedInputStream();
}
- InputStream prologInputStream;
- InputStream epilogInputStream;
+ InputStream prologInputStream; //NOPMD
+ InputStream epilogInputStream; //NOPMD
try {
prologInputStream = writeWrapperStartElement(xmlSecStartElement);
epilogInputStream = writeWrapperEndElement();
@@ -815,7 +815,7 @@ public abstract class AbstractDecryptInputProcessor extends AbstractInputProcess
public void run() {
try {
- final OutputStream outputStream;
+ final OutputStream outputStream; //NOPMD
final Cipher cipher = getSymmetricCipher();
if (cipher.getAlgorithm().toUpperCase().contains("GCM")) {
@@ -826,7 +826,7 @@ public abstract class AbstractDecryptInputProcessor extends AbstractInputProcess
outputStream = pipedOutputStream;
}
- final CipherOutputStream cipherOutputStream = new CipherOutputStream(outputStream, cipher) {
+ final CipherOutputStream cipherOutputStream = new CipherOutputStream(outputStream, cipher) { //NOPMD
//override close() to workaround a bug in oracle-jdk:
//authentication failures when using AEAD ciphers are silently ignored...
@Override
@@ -841,15 +841,15 @@ public abstract class AbstractDecryptInputProcessor extends AbstractInputProcess
}
}
};
- IVSplittingOutputStream ivSplittingOutputStream = new IVSplittingOutputStream(
+ IVSplittingOutputStream ivSplittingOutputStream = new IVSplittingOutputStream( //NOPMD
cipherOutputStream,
cipher, getSecretKey(), getIvLength());
//buffering seems not to help
//bufferedOutputStream = new BufferedOutputStream(new Base64OutputStream(ivSplittingOutputStream, false), 8192 * 5);
- ReplaceableOuputStream replaceableOuputStream = new ReplaceableOuputStream(ivSplittingOutputStream);
- OutputStream base64OutputStream = new Base64OutputStream(replaceableOuputStream, false);
+ ReplaceableOuputStream replaceableOuputStream = new ReplaceableOuputStream(ivSplittingOutputStream); //NOPMD
+ OutputStream base64OutputStream = new Base64OutputStream(replaceableOuputStream, false); //NOPMD
ivSplittingOutputStream.setParentOutputStream(replaceableOuputStream);
- OutputStreamWriter outputStreamWriter =
+ OutputStreamWriter outputStreamWriter = //NOPMD
new OutputStreamWriter(base64OutputStream,
Charset.forName(inputProcessorChain.getDocumentContext().getEncoding()));
diff --git a/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractEncryptOutputProcessor.java b/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractEncryptOutputProcessor.java
index 4cae594..2b30bf3 100644
--- a/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractEncryptOutputProcessor.java
+++ b/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractEncryptOutputProcessor.java
@@ -174,7 +174,7 @@ public abstract class AbstractEncryptOutputProcessor extends AbstractOutputProce
symmetricCipher.init(Cipher.ENCRYPT_MODE, encryptionPartDef.getSymmetricKey(), parameterSpec);
characterEventGeneratorOutputStream = new CharacterEventGeneratorOutputStream();
- Base64OutputStream base64EncoderStream = null;
+ Base64OutputStream base64EncoderStream = null; //NOPMD
if (XMLUtils.isIgnoreLineBreaks()) {
base64EncoderStream = new Base64OutputStream(characterEventGeneratorOutputStream, true, 0, null);
} else {
@@ -182,7 +182,7 @@ public abstract class AbstractEncryptOutputProcessor extends AbstractOutputProce
}
base64EncoderStream.write(iv);
- OutputStream outputStream = new CipherOutputStream(base64EncoderStream, symmetricCipher);
+ OutputStream outputStream = new CipherOutputStream(base64EncoderStream, symmetricCipher); //NOPMD
outputStream = applyTransforms(outputStream);
//the trimmer output stream is needed to strip away the dummy wrapping element which must be added
cipherOutputStream = new TrimmerOutputStream(outputStream, 8192 * 10, 3, 4);
diff --git a/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java b/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java
index 603bb74..fc14cde 100644
--- a/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java
+++ b/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java
@@ -112,8 +112,8 @@ public abstract class AbstractSignatureOutputProcessor extends AbstractOutputPro
digestAlgo = getSecurityProperties().getSignatureDigestAlgorithm();
}
- DigestOutputStream digestOutputStream = createMessageDigestOutputStream(digestAlgo);
- InputStream inputStream = resourceResolver.getInputStreamFromExternalReference();
+ DigestOutputStream digestOutputStream = createMessageDigestOutputStream(digestAlgo); //NOPMD
+ InputStream inputStream = resourceResolver.getInputStreamFromExternalReference(); //NOPMD
SignaturePartDef signaturePartDef = new SignaturePartDef();
signaturePartDef.setSecurePart(securePart);
diff --git a/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java b/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java
index 77e3e66..441761f 100644
--- a/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java
+++ b/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java
@@ -254,7 +254,7 @@ public abstract class CanonicalizerBase extends TransformIdentity {
@Override
public void transform(final XMLSecEvent xmlSecEvent) throws XMLStreamException {
try {
- OutputStream outputStream = getOutputStream();
+ OutputStream outputStream = getOutputStream(); //NOPMD
switch (xmlSecEvent.getEventType()) {
case XMLStreamConstants.START_ELEMENT:
@@ -405,7 +405,7 @@ public abstract class CanonicalizerBase extends TransformIdentity {
@Override
public void doFinal() throws XMLStreamException {
if (getTransformer() != null) {
- UnsyncByteArrayOutputStream baos = (UnsyncByteArrayOutputStream)getOutputStream();
+ UnsyncByteArrayOutputStream baos = (UnsyncByteArrayOutputStream)getOutputStream(); //NOPMD
try (InputStream is = new UnsyncByteArrayInputStream(baos.toByteArray())) {
getTransformer().transform(is);
getTransformer().doFinal();
diff --git a/src/main/java/org/apache/xml/security/utils/RFC2253Parser.java b/src/main/java/org/apache/xml/security/utils/RFC2253Parser.java
index 918183e..72ab461 100644
--- a/src/main/java/org/apache/xml/security/utils/RFC2253Parser.java
+++ b/src/main/java/org/apache/xml/security/utils/RFC2253Parser.java
@@ -186,20 +186,21 @@ public class RFC2253Parser {
if (value.startsWith("\"")) {
StringBuilder sb = new StringBuilder();
- StringReader sr = new StringReader(value.substring(1, value.length() - 1));
- int i = 0;
- char c;
+ try (StringReader sr = new StringReader(value.substring(1, value.length() - 1))) {
+ int i = 0;
+ char c;
- while ((i = sr.read()) > -1) {
- c = (char) i;
+ while ((i = sr.read()) > -1) {
+ c = (char) i;
- //the following char is defined at 4.Relationship with RFC1779 and LDAPv2 inrfc2253
- if (c == ',' || c == '=' || c == '+' || c == '<'
- || c == '>' || c == '#' || c == ';') {
- sb.append('\\');
- }
+ //the following char is defined at 4.Relationship with RFC1779 and LDAPv2 inrfc2253
+ if (c == ',' || c == '=' || c == '+' || c == '<'
+ || c == '>' || c == '#' || c == ';') {
+ sb.append('\\');
+ }
- sb.append(c);
+ sb.append(c);
+ }
}
value = trim(sb.toString());
@@ -259,37 +260,38 @@ public class RFC2253Parser {
*/
static String changeLess32toRFC(String string) throws IOException {
StringBuilder sb = new StringBuilder();
- StringReader sr = new StringReader(string);
int i = 0;
char c;
- while ((i = sr.read()) > -1) {
- c = (char) i;
-
- if (c == '\\') {
- sb.append(c);
-
- char c1 = (char) sr.read();
- char c2 = (char) sr.read();
-
- //65 (A) 97 (a)
- if ((c1 >= 48 && c1 <= 57 || c1 >= 65 && c1 <= 70 || c1 >= 97 && c1 <= 102)
- && (c2 >= 48 && c2 <= 57
- || c2 >= 65 && c2 <= 70
- || c2 >= 97 && c2 <= 102)) {
- try {
- char ch = (char) Byte.parseByte("" + c1 + c2, 16);
+ try (StringReader sr = new StringReader(string)) {
+ while ((i = sr.read()) > -1) {
+ c = (char) i;
- sb.append(ch);
- } catch (NumberFormatException ex) {
- throw new IOException(ex);
+ if (c == '\\') {
+ sb.append(c);
+
+ char c1 = (char) sr.read();
+ char c2 = (char) sr.read();
+
+ //65 (A) 97 (a)
+ if ((c1 >= 48 && c1 <= 57 || c1 >= 65 && c1 <= 70 || c1 >= 97 && c1 <= 102)
+ && (c2 >= 48 && c2 <= 57
+ || c2 >= 65 && c2 <= 70
+ || c2 >= 97 && c2 <= 102)) {
+ try {
+ char ch = (char) Byte.parseByte("" + c1 + c2, 16);
+
+ sb.append(ch);
+ } catch (NumberFormatException ex) {
+ throw new IOException(ex);
+ }
+ } else {
+ sb.append(c1);
+ sb.append(c2);
}
} else {
- sb.append(c1);
- sb.append(c2);
+ sb.append(c);
}
- } else {
- sb.append(c);
}
}
@@ -305,15 +307,16 @@ public class RFC2253Parser {
*/
static String changeLess32toXML(String string) throws IOException {
StringBuilder sb = new StringBuilder();
- StringReader sr = new StringReader(string);
int i = 0;
- while ((i = sr.read()) > -1) {
- if (i < 32) {
- sb.append('\\');
- sb.append(Integer.toHexString(i));
- } else {
- sb.append((char) i);
+ try (StringReader sr = new StringReader(string)) {
+ while ((i = sr.read()) > -1) {
+ if (i < 32) {
+ sb.append('\\');
+ sb.append(Integer.toHexString(i));
+ } else {
+ sb.append((char) i);
+ }
}
}
@@ -329,28 +332,29 @@ public class RFC2253Parser {
*/
static String changeWStoXML(String string) throws IOException {
StringBuilder sb = new StringBuilder();
- StringReader sr = new StringReader(string);
int i = 0;
char c;
- while ((i = sr.read()) > -1) {
- c = (char) i;
+ try (StringReader sr = new StringReader(string)) {
+ while ((i = sr.read()) > -1) {
+ c = (char) i;
- if (c == '\\') {
- char c1 = (char) sr.read();
+ if (c == '\\') {
+ char c1 = (char) sr.read();
- if (c1 == ' ') {
- sb.append('\\');
+ if (c1 == ' ') {
+ sb.append('\\');
- String s = "20";
+ String s = "20";
- sb.append(s);
+ sb.append(s);
+ } else {
+ sb.append('\\');
+ sb.append(c1);
+ }
} else {
- sb.append('\\');
- sb.append(c1);
+ sb.append(c);
}
- } else {
- sb.append(c);
}
}
diff --git a/src/main/java/org/apache/xml/security/utils/XMLUtils.java b/src/main/java/org/apache/xml/security/utils/XMLUtils.java
index 277b685..6679832 100644
--- a/src/main/java/org/apache/xml/security/utils/XMLUtils.java
+++ b/src/main/java/org/apache/xml/security/utils/XMLUtils.java
@@ -575,7 +575,7 @@ public final class XMLUtils {
Node parent = null;
Node sibling = null;
final String namespaceNs = Constants.NamespaceSpecNS;
- do {
+ do { //NOPMD
switch (node.getNodeType()) {
case Node.ELEMENT_NODE :
Element element = (Element) node;
diff --git a/src/main/java/org/apache/xml/security/utils/resolver/implementations/ResolverLocalFilesystem.java b/src/main/java/org/apache/xml/security/utils/resolver/implementations/ResolverLocalFilesystem.java
index 91d52f3..8a1ea66 100644
--- a/src/main/java/org/apache/xml/security/utils/resolver/implementations/ResolverLocalFilesystem.java
+++ b/src/main/java/org/apache/xml/security/utils/resolver/implementations/ResolverLocalFilesystem.java
@@ -51,7 +51,7 @@ public class ResolverLocalFilesystem extends ResourceResolverSpi {
String fileName =
ResolverLocalFilesystem.translateUriToFilename(uriNew.toString());
- InputStream inputStream = Files.newInputStream(Paths.get(fileName));
+ InputStream inputStream = Files.newInputStream(Paths.get(fileName)); //NOPMD
XMLSignatureInput result = new XMLSignatureInput(inputStream);
result.setSecureValidation(context.secureValidation);