Skip to content

Commit 497261e

Browse files
mergify[bot]andsel
andauthored
Use org.logstash.common.Util to hashing by default to SHA256 (#17346) (#17352)
Removes the usage fo Apache Commons Codec MessgeDigest to use internal Util class with embodies hashing methods. (cherry picked from commit 9c0e50f) Co-authored-by: Andrea Selva <[email protected]>
1 parent 6d21e30 commit 497261e

File tree

6 files changed

+23
-11
lines changed

6 files changed

+23
-11
lines changed

logstash-core/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ dependencies {
238238
implementation('org.reflections:reflections:0.10.2') {
239239
exclude group: 'com.google.guava', module: 'guava'
240240
}
241-
implementation 'commons-codec:commons-codec:1.17.0'
241+
implementation 'commons-codec:commons-codec:1.17.0' // transitively required by httpclient
242242
// Jackson version moved to versions.yml in the project root (the JrJackson version is there too)
243243
implementation "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}"
244244
api "com.fasterxml.jackson.core:jackson-databind:${jacksonDatabindVersion}"

logstash-core/src/main/java/org/logstash/common/Util.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ public static MessageDigest defaultMessageDigest() {
3535
}
3636
}
3737

38+
/**
39+
* Returns the hexadecimal string of UTF-8 bytes that make up the string.
40+
* @param base
41+
* the string to hash.
42+
* @return
43+
* hexadecimal string that contains the hash.
44+
* */
3845
public static String digest(String base) {
3946
MessageDigest digest = defaultMessageDigest();
4047
byte[] hash = digest.digest(base.getBytes(StandardCharsets.UTF_8));

logstash-core/src/main/java/org/logstash/config/ir/PipelineConfig.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,24 @@
1919

2020
package org.logstash.config.ir;
2121

22-
import org.apache.commons.codec.digest.DigestUtils;
2322
import org.apache.logging.log4j.LogManager;
2423
import org.apache.logging.log4j.Logger;
25-
import org.jruby.*;
24+
import org.jruby.RubyArray;
25+
import org.jruby.RubyClass;
26+
import org.jruby.RubyObject;
27+
import org.jruby.RubyString;
28+
import org.jruby.RubySymbol;
2629
import org.jruby.runtime.builtin.IRubyObject;
2730
import org.logstash.common.IncompleteSourceWithMetadataException;
2831
import org.logstash.common.SourceWithMetadata;
32+
import org.logstash.common.Util;
2933

3034
import java.time.LocalDateTime;
31-
import java.util.*;
35+
import java.util.ArrayList;
36+
import java.util.Arrays;
37+
import java.util.Collections;
38+
import java.util.Comparator;
39+
import java.util.List;
3240
import java.util.stream.Collectors;
3341

3442
import static org.logstash.RubyUtil.RUBY;
@@ -105,7 +113,7 @@ public RubyObject getSettings() {
105113

106114
public String configHash() {
107115
if (configHash == null) {
108-
configHash = DigestUtils.sha1Hex(configString() + metadataString());
116+
configHash = Util.digest(configString() + metadataString());
109117
}
110118
return configHash;
111119
}

logstash-core/src/main/java/org/logstash/plugins/AliasRegistry.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.logstash.plugins;
22

3-
import org.apache.commons.codec.digest.DigestUtils;
43
import org.apache.logging.log4j.LogManager;
54
import org.apache.logging.log4j.Logger;
5+
import org.logstash.common.Util;
66
import org.logstash.plugins.PluginLookup.PluginType;
77
import org.logstash.plugins.aliases.AliasDocumentReplace;
88
import org.logstash.plugins.aliases.AliasPlugin;
@@ -109,7 +109,7 @@ private Map<PluginType, List<AliasPlugin>> decodeYaml() throws IOException {
109109
}
110110

111111
private String computeHashFromContent() {
112-
return DigestUtils.sha256Hex(yamlContents);
112+
return Util.digest(yamlContents);
113113
}
114114

115115
@SuppressWarnings("unchecked")

logstash-core/src/main/java/org/logstash/util/EscapeHandler.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package org.logstash.util;
22

3-
import org.apache.commons.codec.DecoderException;
4-
import org.apache.commons.codec.binary.Hex;
5-
63
import java.net.URLDecoder;
74
import java.nio.charset.StandardCharsets;
85
import java.util.regex.Pattern;

tools/benchmark-cli/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ dependencies {
5151
implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14'
5252
implementation group: 'org.apache.commons', name: 'commons-compress', version: '1.26.1'
5353
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.14.0'
54-
implementation group: 'commons-codec', name: 'commons-codec', version: '1.17.0'
54+
implementation group: 'commons-codec', name: 'commons-codec', version: '1.17.0' // transitively required by httpclient
5555

5656
implementation group: 'commons-io', name: 'commons-io', version: '2.16.1'
5757
implementation "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}"

0 commit comments

Comments
 (0)