diff --git a/README.md b/README.md
index 4dd74940bb6..c74236bb495 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,6 @@
[](http://geode.apache.org)
[](https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main) [](https://www.apache.org/licenses/LICENSE-2.0) [](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.geode%22) [](https://formulae.brew.sh/formula/apache-geode) [](https://hub.docker.com/r/apachegeode/geode/) [](https://lgtm.com/projects/g/apache/geode/alerts/) [](https://lgtm.com/projects/g/apache/geode/context:java) [](https://lgtm.com/projects/g/apache/geode/context:javascript) [](https://lgtm.com/projects/g/apache/geode/context:python)
-
## Contents
diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml
index 65f6a24015d..ca41c043f52 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -195,7 +195,7 @@
io.micrometer
micrometer-core
- 1.14.0
+ 1.15.12
io.swagger.core.v3
@@ -415,7 +415,7 @@
org.slf4j
slf4j-api
- 2.0.17
+ 2.0.18
org.springframework.hateoas
@@ -475,22 +475,22 @@
com.fasterxml.jackson.core
jackson-core
- 2.21.2
+ 2.21.5
com.fasterxml.jackson.core
jackson-databind
- 2.21.2
+ 2.21.5
com.fasterxml.jackson.datatype
jackson-datatype-joda
- 2.21.2
+ 2.21.5
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
- 2.21.2
+ 2.21.5
com.jayway.jsonpath
@@ -530,27 +530,27 @@
org.apache.logging.log4j
log4j-api
- 2.25.4
+ 2.25.5
org.apache.logging.log4j
log4j-core
- 2.25.4
+ 2.25.5
org.apache.logging.log4j
log4j-jcl
- 2.25.4
+ 2.25.5
org.apache.logging.log4j
log4j-jul
- 2.25.4
+ 2.25.5
org.apache.logging.log4j
log4j-slf4j-impl
- 2.25.4
+ 2.25.5
org.apache.lucene
diff --git a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
index d71e6717bad..29e0d699c21 100644
--- a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
+++ b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
@@ -46,18 +46,18 @@ class DependencyConstraints {
deps.put("jakarta.annotation.version", "2.1.1")
deps.put("jakarta.ejb.version", "4.0.1")
deps.put("jgroups.version", "3.6.20.Final")
- deps.put("log4j.version", "2.25.4")
+ deps.put("log4j.version", "2.25.5")
deps.put("log4j-slf4j2-impl.version", "2.23.1")
- deps.put("micrometer.version", "1.14.0")
- deps.put("shiro.version", "2.1.0")
+ deps.put("micrometer.version", "1.15.12")
+ deps.put("shiro.version", "3.0.0")
// GEODE-10583: Pin Bouncy Castle (transitive via shiro-crypto-hash) to a fixed version
- deps.put("bouncycastle.version", "1.84")
- deps.put("slf4j-api.version", "2.0.17")
+ deps.put("bouncycastle.version", "1.85")
+ deps.put("slf4j-api.version", "2.0.18")
deps.put("jakarta.transaction-api.version", "2.0.1")
deps.put("jboss-modules.version", "1.11.0.Final")
- deps.put("jackson.version", "2.21.2")
+ deps.put("jackson.version", "2.21.5")
deps.put("jackson.annotations.version", "2.21")
- deps.put("jackson.databind.version", "2.21.2")
+ deps.put("jackson.databind.version", "2.21.5")
// Spring Framework 6.x Migration
deps.put("springshell.version", "3.3.3")
deps.put("springframework.version", "6.1.21")
@@ -85,7 +85,7 @@ class DependencyConstraints {
// at o.a.g.sessions.tests.GenericAppServerInstall.java
// Jetty 12.0.x for Jakarta EE 10 (Servlet 6.0) compatibility
// Jetty 12 reorganized modules under ee10, ee9, ee8 packages
- deps.put("jetty.version", "12.0.33")
+ deps.put("jetty.version", "12.0.37")
// These versions are referenced in test.gradle, which is aggressively injected into all projects.
deps.put("junit.version", "4.13.2")
@@ -108,6 +108,8 @@ class DependencyConstraints {
project.dependencies {
constraints {
+ api('org.jline:jline-terminal-jni:3.26.3')
+ api('org.jline:jline-terminal-ffm:3.26.3')
// informal, inter-group dependencySet
api(group: 'antlr', name: 'antlr', version: get('antlr.version'))
api(group: 'cglib', name: 'cglib', version: get('cglib.version'))
@@ -175,8 +177,8 @@ class DependencyConstraints {
api(group: 'org.apache.derby', name: 'derby', version: '10.14.2.0')
// Apache HttpComponents 5.x - Modern HTTP client with HTTP/2 support
api(group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.4.4')
- api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5', version: '5.3.6')
- api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5-h2', version: '5.3.6')
+ api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5', version: '5.4.3')
+ api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5-h2', version: '5.4.3')
// Legacy HttpComponents 4.x (keep temporarily during migration, remove after complete)
api(group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13')
api(group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.15')
diff --git a/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle b/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle
index a4e0645a450..7c0ca6a2a88 100644
--- a/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle
+++ b/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle
@@ -25,7 +25,7 @@ repositories {
dependencies {
implementation("${project.group}:geode-core:${project.version}")
- runtimeOnly('org.apache.logging.log4j:log4j-slf4j-impl:2.25.4')
+ runtimeOnly('org.apache.logging.log4j:log4j-slf4j-impl:2.25.5')
}
application {
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
index b2fc46e8511..59edba38218 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
@@ -34,7 +34,7 @@
* specific code outside of the {@link GenericAppServerVersion}.
*/
public class GenericAppServerInstall extends ContainerInstall {
- private static final String JETTY_VERSION = "12.0.33";
+ private static final String JETTY_VERSION = "12.0.37";
/**
* Get the version number, download URL, and container name of a generic app server using
diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt
index c769db89d0e..9ba7a9ea17a 100644
--- a/geode-assembly/src/integrationTest/resources/assembly_content.txt
+++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt
@@ -920,10 +920,10 @@ lib/ST4-4.3.3.jar
lib/angus-activation-2.0.0.jar
lib/antlr-2.7.7.jar
lib/antlr-runtime-3.5.2.jar
-lib/asm-9.9.1.jar
-lib/asm-commons-9.9.1.jar
-lib/asm-tree-9.9.1.jar
-lib/bcprov-jdk18on-1.84.jar
+lib/asm-9.10.1.jar
+lib/asm-commons-9.10.1.jar
+lib/asm-tree-9.10.1.jar
+lib/bcprov-jdk18on-1.85.jar
lib/classgraph-4.8.147.jar
lib/classmate-1.5.1.jar
lib/commons-beanutils-1.11.0.jar
@@ -961,15 +961,15 @@ lib/geode-wan-0.0.0.jar
lib/gfsh-dependencies.jar
lib/hibernate-validator-8.0.2.Final.jar
lib/httpclient5-5.4.4.jar
-lib/httpcore5-5.3.6.jar
-lib/httpcore5-h2-5.3.6.jar
+lib/httpcore5-5.4.3.jar
+lib/httpcore5-h2-5.4.3.jar
lib/istack-commons-runtime-4.1.1.jar
lib/jackson-annotations-2.21.jar
-lib/jackson-core-2.21.2.jar
-lib/jackson-databind-2.21.2.jar
-lib/jackson-dataformat-yaml-2.21.2.jar
-lib/jackson-datatype-joda-2.21.2.jar
-lib/jackson-datatype-jsr310-2.21.2.jar
+lib/jackson-core-2.21.5.jar
+lib/jackson-databind-2.21.5.jar
+lib/jackson-dataformat-yaml-2.21.5.jar
+lib/jackson-datatype-joda-2.21.5.jar
+lib/jackson-datatype-jsr310-2.21.5.jar
lib/jakarta.activation-api-2.1.3.jar
lib/jakarta.annotation-api-2.1.1.jar
lib/jakarta.el-api-5.0.0.jar
@@ -986,20 +986,20 @@ lib/jakarta.xml.bind-api-4.0.2.jar
lib/jaxb-core-4.0.2.jar
lib/jaxb-runtime-4.0.2.jar
lib/jboss-logging-3.4.3.Final.jar
-lib/jetty-ee-12.0.33.jar
-lib/jetty-ee10-annotations-12.0.33.jar
-lib/jetty-ee10-plus-12.0.33.jar
-lib/jetty-ee10-servlet-12.0.33.jar
-lib/jetty-ee10-webapp-12.0.33.jar
-lib/jetty-http-12.0.33.jar
-lib/jetty-io-12.0.33.jar
-lib/jetty-jndi-12.0.33.jar
-lib/jetty-plus-12.0.33.jar
-lib/jetty-security-12.0.33.jar
-lib/jetty-server-12.0.33.jar
-lib/jetty-session-12.0.33.jar
-lib/jetty-util-12.0.33.jar
-lib/jetty-xml-12.0.33.jar
+lib/jetty-ee-12.0.37.jar
+lib/jetty-ee10-annotations-12.0.37.jar
+lib/jetty-ee10-plus-12.0.37.jar
+lib/jetty-ee10-servlet-12.0.37.jar
+lib/jetty-ee10-webapp-12.0.37.jar
+lib/jetty-http-12.0.37.jar
+lib/jetty-io-12.0.37.jar
+lib/jetty-jndi-12.0.37.jar
+lib/jetty-plus-12.0.37.jar
+lib/jetty-security-12.0.37.jar
+lib/jetty-server-12.0.37.jar
+lib/jetty-session-12.0.37.jar
+lib/jetty-util-12.0.37.jar
+lib/jetty-xml-12.0.37.jar
lib/jgroups-3.6.20.Final.jar
lib/jline-builtins-3.26.3.jar
lib/jline-console-3.26.3.jar
@@ -1007,24 +1007,26 @@ lib/jline-native-3.26.3.jar
lib/jline-reader-3.26.3.jar
lib/jline-style-3.26.3.jar
lib/jline-terminal-3.26.3.jar
+lib/jline-terminal-ffm-3.26.3.jar
+lib/jline-terminal-jni-3.26.3.jar
lib/jna-5.11.0.jar
lib/jna-platform-5.11.0.jar
lib/joda-time-2.12.7.jar
lib/jopt-simple-5.0.4.jar
lib/jul-to-slf4j-2.0.17.jar
-lib/log4j-api-2.25.4.jar
-lib/log4j-core-2.25.4.jar
-lib/log4j-jcl-2.25.4.jar
-lib/log4j-jul-2.25.4.jar
-lib/log4j-slf4j-impl-2.25.4.jar
+lib/log4j-api-2.25.5.jar
+lib/log4j-core-2.25.5.jar
+lib/log4j-jcl-2.25.5.jar
+lib/log4j-jul-2.25.5.jar
+lib/log4j-slf4j-impl-2.25.5.jar
lib/lucene-analysis-common-9.12.3.jar
lib/lucene-analysis-phonetic-9.12.3.jar
lib/lucene-core-9.12.3.jar
lib/lucene-queries-9.12.3.jar
lib/lucene-queryparser-9.12.3.jar
-lib/micrometer-commons-1.14.0.jar
-lib/micrometer-core-1.14.0.jar
-lib/micrometer-observation-1.14.0.jar
+lib/micrometer-commons-1.15.12.jar
+lib/micrometer-core-1.15.12.jar
+lib/micrometer-observation-1.15.12.jar
lib/mx4j-3.0.2.jar
lib/mx4j-remote-3.0.2.jar
lib/mx4j-tools-3.0.1.jar
@@ -1032,18 +1034,18 @@ lib/ra.jar
lib/reactive-streams-1.0.4.jar
lib/reactor-core-3.6.10.jar
lib/rmiio-2.1.2.jar
-lib/shiro-cache-2.1.0.jar
-lib/shiro-config-core-2.1.0.jar
-lib/shiro-config-ogdl-2.1.0.jar
-lib/shiro-core-2.1.0.jar
-lib/shiro-crypto-cipher-2.1.0.jar
-lib/shiro-crypto-core-2.1.0.jar
-lib/shiro-crypto-hash-2.1.0.jar
-lib/shiro-event-2.1.0.jar
-lib/shiro-hashes-argon2-2.1.0.jar
-lib/shiro-hashes-bcrypt-2.1.0.jar
-lib/shiro-lang-2.1.0.jar
-lib/slf4j-api-2.0.17.jar
+lib/shiro-cache-3.0.0.jar
+lib/shiro-config-core-3.0.0.jar
+lib/shiro-config-ogdl-3.0.0.jar
+lib/shiro-core-3.0.0.jar
+lib/shiro-crypto-cipher-3.0.0.jar
+lib/shiro-crypto-core-3.0.0.jar
+lib/shiro-crypto-hash-3.0.0.jar
+lib/shiro-event-3.0.0.jar
+lib/shiro-hashes-argon2-3.0.0.jar
+lib/shiro-hashes-bcrypt-3.0.0.jar
+lib/shiro-lang-3.0.0.jar
+lib/slf4j-api-2.0.18.jar
lib/snakeyaml-2.3.jar
lib/snappy-0.5.jar
lib/spring-aop-6.1.21.jar
diff --git a/geode-assembly/src/integrationTest/resources/expected_jars.txt b/geode-assembly/src/integrationTest/resources/expected_jars.txt
index 7d0c0f27220..facbde0d7f6 100644
--- a/geode-assembly/src/integrationTest/resources/expected_jars.txt
+++ b/geode-assembly/src/integrationTest/resources/expected_jars.txt
@@ -71,6 +71,8 @@ jline-native
jline-reader
jline-style
jline-terminal
+jline-terminal-ffm
+jline-terminal-jni
jna
jna-platform
joda-time
diff --git a/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt b/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt
index b39d44afd5e..e8d49e23cf8 100644
--- a/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt
+++ b/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt
@@ -21,22 +21,22 @@ spring-shell-starter-3.3.3.jar
spring-web-6.1.21.jar
commons-lang3-3.18.0.jar
rmiio-2.1.2.jar
-jackson-datatype-joda-2.21.2.jar
+jackson-datatype-joda-2.21.5.jar
jackson-annotations-2.21.jar
-jackson-dataformat-yaml-2.21.2.jar
-jackson-core-2.21.2.jar
-jackson-datatype-jsr310-2.21.2.jar
-jackson-databind-2.21.2.jar
+jackson-dataformat-yaml-2.21.5.jar
+jackson-core-2.21.5.jar
+jackson-datatype-jsr310-2.21.5.jar
+jackson-databind-2.21.5.jar
swagger-annotations-2.2.22.jar
jaxb-runtime-4.0.2.jar
jaxb-core-4.0.2.jar
jakarta.xml.bind-api-4.0.2.jar
jopt-simple-5.0.4.jar
-log4j-slf4j-impl-2.25.4.jar
-log4j-core-2.25.4.jar
-log4j-jcl-2.25.4.jar
-log4j-jul-2.25.4.jar
-log4j-api-2.25.4.jar
+log4j-slf4j-impl-2.25.5.jar
+log4j-core-2.25.5.jar
+log4j-jcl-2.25.5.jar
+log4j-jul-2.25.5.jar
+log4j-api-2.25.5.jar
spring-aop-6.1.21.jar
spring-shell-autoconfigure-3.3.3.jar
spring-shell-standard-commands-3.3.3.jar
@@ -60,14 +60,14 @@ lucene-queryparser-9.12.3.jar
lucene-queries-9.12.3.jar
lucene-core-9.12.3.jar
httpclient5-5.4.4.jar
-httpcore5-h2-5.3.6.jar
-httpcore5-5.3.6.jar
+httpcore5-h2-5.4.3.jar
+httpcore5-5.4.3.jar
HikariCP-4.0.3.jar
antlr-2.7.7.jar
istack-commons-runtime-4.1.1.jar
commons-validator-1.7.jar
-shiro-core-2.1.0.jar
-shiro-config-ogdl-2.1.0.jar
+shiro-core-3.0.0.jar
+shiro-config-ogdl-3.0.0.jar
commons-beanutils-1.11.0.jar
commons-codec-1.15.jar
commons-collections-3.2.2.jar
@@ -75,49 +75,49 @@ commons-digester-2.1.jar
commons-io-2.19.0.jar
commons-logging-1.3.5.jar
classgraph-4.8.147.jar
-micrometer-core-1.14.0.jar
+micrometer-core-1.15.12.jar
HdrHistogram-2.2.2.jar
fastutil-8.5.8.jar
jakarta.resource-api-2.1.0.jar
-jetty-ee10-annotations-12.0.33.jar
-jetty-ee10-plus-12.0.33.jar
+jetty-ee10-annotations-12.0.37.jar
+jetty-ee10-plus-12.0.37.jar
jakarta.enterprise.cdi-api-4.0.1.jar
jakarta.interceptor-api-2.1.0.jar
jakarta.annotation-api-2.1.1.jar
-jetty-ee10-webapp-12.0.33.jar
-jetty-ee10-servlet-12.0.33.jar
+jetty-ee10-webapp-12.0.37.jar
+jetty-ee10-servlet-12.0.37.jar
jakarta.servlet-api-6.0.0.jar
jakarta.transaction-api-2.0.1.jar
joda-time-2.12.7.jar
jna-platform-5.11.0.jar
jna-5.11.0.jar
-jetty-ee-12.0.33.jar
-jetty-session-12.0.33.jar
-jetty-plus-12.0.33.jar
-jetty-security-12.0.33.jar
-jetty-server-12.0.33.jar
+jetty-ee-12.0.37.jar
+jetty-session-12.0.37.jar
+jetty-plus-12.0.37.jar
+jetty-security-12.0.37.jar
+jetty-server-12.0.37.jar
snappy-0.5.jar
jgroups-3.6.20.Final.jar
-shiro-cache-2.1.0.jar
-shiro-crypto-hash-2.1.0.jar
-shiro-crypto-cipher-2.1.0.jar
-shiro-config-core-2.1.0.jar
-shiro-event-2.1.0.jar
-shiro-crypto-core-2.1.0.jar
-shiro-lang-2.1.0.jar
-shiro-hashes-argon2-2.1.0.jar
-shiro-hashes-bcrypt-2.1.0.jar
-jetty-xml-12.0.33.jar
-jetty-http-12.0.33.jar
-jetty-io-12.0.33.jar
+shiro-cache-3.0.0.jar
+shiro-crypto-hash-3.0.0.jar
+shiro-crypto-cipher-3.0.0.jar
+shiro-config-core-3.0.0.jar
+shiro-event-3.0.0.jar
+shiro-crypto-core-3.0.0.jar
+shiro-lang-3.0.0.jar
+shiro-hashes-argon2-3.0.0.jar
+shiro-hashes-bcrypt-3.0.0.jar
+jetty-xml-12.0.37.jar
+jetty-http-12.0.37.jar
+jetty-io-12.0.37.jar
spring-boot-starter-logging-3.3.13.jar
jul-to-slf4j-2.0.17.jar
-jetty-jndi-12.0.33.jar
-jetty-util-12.0.33.jar
-slf4j-api-2.0.17.jar
-micrometer-observation-1.14.0.jar
+jetty-jndi-12.0.37.jar
+jetty-util-12.0.37.jar
+slf4j-api-2.0.18.jar
+micrometer-observation-1.15.12.jar
spring-jcl-6.1.21.jar
-micrometer-commons-1.14.0.jar
+micrometer-commons-1.15.12.jar
LatencyUtils-2.0.3.jar
reactor-core-3.6.10.jar
jline-console-3.26.3.jar
@@ -125,12 +125,14 @@ jline-builtins-3.26.3.jar
jline-reader-3.26.3.jar
jline-style-3.26.3.jar
jline-terminal-3.26.3.jar
+jline-terminal-jni-3.26.3.jar
+jline-terminal-ffm-3.26.3.jar
ST4-4.3.3.jar
txw2-4.0.2.jar
snakeyaml-2.3.jar
-asm-commons-9.9.1.jar
-asm-tree-9.9.1.jar
-asm-9.9.1.jar
+asm-commons-9.10.1.jar
+asm-tree-9.10.1.jar
+asm-9.10.1.jar
reactive-streams-1.0.4.jar
jline-native-3.26.3.jar
antlr-runtime-3.5.2.jar
@@ -142,4 +144,4 @@ jboss-logging-3.4.3.Final.jar
classmate-1.5.1.jar
jakarta.el-api-5.0.0.jar
jakarta.inject-api-2.0.1.jar
-bcprov-jdk18on-1.84.jar
+bcprov-jdk18on-1.85.jar
diff --git a/geode-gfsh/build.gradle b/geode-gfsh/build.gradle
index 3c814b10e02..f731cfff12e 100644
--- a/geode-gfsh/build.gradle
+++ b/geode-gfsh/build.gradle
@@ -40,6 +40,9 @@ dependencies {
implementation('com.fasterxml.jackson.core:jackson-databind')
implementation('io.swagger.core.v3:swagger-annotations')
+ runtimeOnly('org.jline:jline-terminal-jni')
+ runtimeOnly('org.jline:jline-terminal-ffm')
+
// JAXB dependencies needed for Java 11+
implementation('jakarta.xml.bind:jakarta.xml.bind-api')
runtimeOnly('org.glassfish.jaxb:jaxb-runtime')
diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java
index bc70f5f4be6..c81202f1f82 100644
--- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java
+++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java
@@ -17,6 +17,7 @@
import java.io.File;
import java.io.IOException;
import java.net.URI;
+import java.util.Base64;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.Executors;
@@ -40,7 +41,6 @@
import org.apache.geode.management.internal.cli.CommandRequest;
import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.cli.shell.OperationInvoker;
-import org.apache.geode.management.internal.web.domain.QueryParameterSource;
import org.apache.geode.management.internal.web.http.support.HttpRequester;
import org.apache.geode.management.internal.web.shell.support.HttpMBeanProxyFactory;
@@ -383,8 +383,14 @@ public Object invoke(final String resourceName, final String operationName, fina
public Set queryNames(final ObjectName objectName, final QueryExp queryExpression) {
final URI link = HttpRequester.createURI(baseUrl, "/mbean/query");
- Object content = new QueryParameterSource(objectName, queryExpression);
try {
+ final MultiValueMap content = new LinkedMultiValueMap();
+ content.add("objectName", objectName.toString());
+ if (queryExpression != null) {
+ content.add("queryExpression",
+ Base64.getEncoder().encodeToString(IOUtils.serializeObject(queryExpression)));
+ }
+
return (Set) IOUtils
.deserializeObject(httpRequester.post(link, content, byte[].class));
} catch (Exception e) {
diff --git a/geode-gfsh/src/test/resources/expected-pom.xml b/geode-gfsh/src/test/resources/expected-pom.xml
index 45903f49046..579bdc65780 100644
--- a/geode-gfsh/src/test/resources/expected-pom.xml
+++ b/geode-gfsh/src/test/resources/expected-pom.xml
@@ -349,6 +349,36 @@
+
+ org.jline
+ jline-terminal-jni
+ runtime
+
+
+ log4j-to-slf4j
+ org.apache.logging.log4j
+
+
+ *
+ ch.qos.logback
+
+
+
+
+ org.jline
+ jline-terminal-ffm
+ runtime
+
+
+ log4j-to-slf4j
+ org.apache.logging.log4j
+
+
+ *
+ ch.qos.logback
+
+
+
org.glassfish.jaxb
jaxb-runtime
diff --git a/geode-server-all/src/integrationTest/resources/dependency_classpath.txt b/geode-server-all/src/integrationTest/resources/dependency_classpath.txt
index 6b665995a61..2a832a1ea4a 100644
--- a/geode-server-all/src/integrationTest/resources/dependency_classpath.txt
+++ b/geode-server-all/src/integrationTest/resources/dependency_classpath.txt
@@ -19,25 +19,25 @@ geode-unsafe-0.0.0.jar
geode-deployment-legacy-0.0.0.jar
snappy-0.5.jar
swagger-annotations-2.2.22.jar
-jackson-datatype-jsr310-2.21.2.jar
+jackson-datatype-jsr310-2.21.5.jar
jackson-annotations-2.21.jar
-jackson-dataformat-yaml-2.21.2.jar
-jackson-core-2.21.2.jar
-jackson-datatype-joda-2.21.2.jar
-jackson-databind-2.21.2.jar
+jackson-dataformat-yaml-2.21.5.jar
+jackson-core-2.21.5.jar
+jackson-datatype-joda-2.21.5.jar
+jackson-databind-2.21.5.jar
httpclient5-5.4.4.jar
-httpcore5-h2-5.3.6.jar
-httpcore5-5.3.6.jar
+httpcore5-h2-5.4.3.jar
+httpcore5-5.4.3.jar
HikariCP-4.0.3.jar
commons-lang3-3.18.0.jar
jaxb-runtime-4.0.2.jar
jaxb-core-4.0.2.jar
jakarta.xml.bind-api-4.0.2.jar
-log4j-slf4j-impl-2.25.4.jar
-log4j-core-2.25.4.jar
-log4j-jcl-2.25.4.jar
-log4j-jul-2.25.4.jar
-log4j-api-2.25.4.jar
+log4j-slf4j-impl-2.25.5.jar
+log4j-core-2.25.5.jar
+log4j-jcl-2.25.5.jar
+log4j-jul-2.25.5.jar
+log4j-api-2.25.5.jar
spring-shell-starter-3.3.3.jar
rmiio-2.1.2.jar
antlr-2.7.7.jar
@@ -46,17 +46,17 @@ spring-shell-standard-commands-3.3.3.jar
spring-shell-standard-3.3.3.jar
spring-shell-core-3.3.3.jar
commons-io-2.19.0.jar
-micrometer-core-1.14.0.jar
+micrometer-core-1.15.12.jar
jakarta.resource-api-2.1.0.jar
-jetty-ee10-annotations-12.0.33.jar
+jetty-ee10-annotations-12.0.37.jar
spring-boot-starter-validation-3.3.13.jar
spring-boot-starter-3.3.13.jar
-jetty-ee10-plus-12.0.33.jar
+jetty-ee10-plus-12.0.37.jar
jakarta.enterprise.cdi-api-4.0.1.jar
jakarta.interceptor-api-2.1.0.jar
jakarta.annotation-api-2.1.1.jar
jakarta.transaction-api-2.0.1.jar
-shiro-core-2.1.0.jar
+shiro-core-3.0.0.jar
jgroups-3.6.20.Final.jar
commons-validator-1.7.jar
fastutil-8.5.8.jar
@@ -82,55 +82,57 @@ lucene-analysis-common-9.12.3.jar
lucene-queryparser-9.12.3.jar
lucene-queries-9.12.3.jar
lucene-core-9.12.3.jar
-shiro-config-ogdl-2.1.0.jar
+shiro-config-ogdl-3.0.0.jar
commons-beanutils-1.11.0.jar
commons-codec-1.15.jar
commons-collections-3.2.2.jar
commons-digester-2.1.jar
commons-logging-1.3.5.jar
HdrHistogram-2.2.2.jar
-jetty-ee10-webapp-12.0.33.jar
-jetty-ee10-servlet-12.0.33.jar
+jetty-ee10-webapp-12.0.37.jar
+jetty-ee10-servlet-12.0.37.jar
jakarta.servlet-api-6.0.0.jar
joda-time-2.12.7.jar
-jetty-ee-12.0.33.jar
-jetty-session-12.0.33.jar
-jetty-plus-12.0.33.jar
-jetty-security-12.0.33.jar
-jetty-server-12.0.33.jar
-shiro-cache-2.1.0.jar
-shiro-hashes-argon2-2.1.0.jar
-shiro-hashes-bcrypt-2.1.0.jar
-shiro-crypto-hash-2.1.0.jar
-shiro-crypto-cipher-2.1.0.jar
-shiro-config-core-2.1.0.jar
-shiro-event-2.1.0.jar
-shiro-crypto-core-2.1.0.jar
-shiro-lang-2.1.0.jar
-jetty-xml-12.0.33.jar
-jetty-http-12.0.33.jar
-jetty-io-12.0.33.jar
-jetty-jndi-12.0.33.jar
-jetty-util-12.0.33.jar
+jetty-ee-12.0.37.jar
+jetty-session-12.0.37.jar
+jetty-plus-12.0.37.jar
+jetty-security-12.0.37.jar
+jetty-server-12.0.37.jar
+shiro-cache-3.0.0.jar
+shiro-hashes-argon2-3.0.0.jar
+shiro-hashes-bcrypt-3.0.0.jar
+shiro-crypto-hash-3.0.0.jar
+shiro-crypto-cipher-3.0.0.jar
+shiro-config-core-3.0.0.jar
+shiro-event-3.0.0.jar
+shiro-crypto-core-3.0.0.jar
+shiro-lang-3.0.0.jar
+jetty-xml-12.0.37.jar
+jetty-http-12.0.37.jar
+jetty-io-12.0.37.jar
+jetty-jndi-12.0.37.jar
+jetty-util-12.0.37.jar
spring-boot-starter-logging-3.3.13.jar
jul-to-slf4j-2.0.17.jar
-slf4j-api-2.0.17.jar
-micrometer-observation-1.14.0.jar
-micrometer-commons-1.14.0.jar
+slf4j-api-2.0.18.jar
+micrometer-observation-1.15.12.jar
+micrometer-commons-1.15.12.jar
LatencyUtils-2.0.3.jar
snakeyaml-2.3.jar
spring-jcl-6.1.21.jar
-asm-commons-9.9.1.jar
-asm-tree-9.9.1.jar
-asm-9.9.1.jar
+asm-commons-9.10.1.jar
+asm-tree-9.10.1.jar
+asm-9.10.1.jar
txw2-4.0.2.jar
-bcprov-jdk18on-1.84.jar
+bcprov-jdk18on-1.85.jar
reactor-core-3.6.10.jar
jline-console-3.26.3.jar
jline-builtins-3.26.3.jar
jline-reader-3.26.3.jar
jline-style-3.26.3.jar
jline-terminal-3.26.3.jar
+jline-terminal-jni-3.26.3.jar
+jline-terminal-ffm-3.26.3.jar
ST4-4.3.3.jar
jakarta.enterprise.lang-model-4.0.1.jar
reactive-streams-1.0.4.jar
diff --git a/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java b/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java
index 3bc43a48e8d..5e194b19081 100644
--- a/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java
+++ b/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java
@@ -17,9 +17,11 @@
import static org.apache.commons.io.IOUtils.toInputStream;
import static org.apache.geode.management.internal.web.util.UriUtils.decode;
+import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Path;
+import java.util.Base64;
import java.util.Optional;
import java.util.Set;
@@ -29,9 +31,11 @@
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
+import javax.management.QueryExp;
import javax.management.ReflectionException;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.serialization.ValidatingObjectInputStream;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
@@ -39,7 +43,6 @@
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@@ -55,7 +58,6 @@
import org.apache.geode.management.internal.cli.result.model.ResultModel;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.apache.geode.management.internal.i18n.CliStrings;
-import org.apache.geode.management.internal.web.domain.QueryParameterSource;
import org.apache.geode.util.internal.GeodeConverter;
/**
@@ -162,11 +164,21 @@ public ResponseEntity> invoke(@RequestParam("resourceName") final String resou
}
@RequestMapping(method = RequestMethod.POST, value = "/mbean/query")
- public ResponseEntity> queryNames(@RequestBody final QueryParameterSource query)
- throws IOException {
+ public ResponseEntity> queryNames(@RequestParam("objectName") final String objectName,
+ @RequestParam(value = "queryExpression", required = false) final String queryExpressionBase64)
+ throws Exception {
// Exceptions are caught by the @ExceptionHandler AbstractCommandsController.handleAppException
- final Set objectNames =
- getMBeanServer().queryNames(query.getObjectName(), query.getQueryExpression());
+ ObjectName name = ObjectName.getInstance(decode(objectName));
+ QueryExp query = null;
+ if (queryExpressionBase64 != null) {
+ byte[] decodedBytes = Base64.getDecoder().decode(queryExpressionBase64);
+ try (ValidatingObjectInputStream ois =
+ new ValidatingObjectInputStream(new ByteArrayInputStream(decodedBytes))) {
+ ois.accept("javax.management.*", "java.lang.*", "java.util.*");
+ query = (QueryExp) ois.readObject();
+ }
+ }
+ final Set objectNames = getMBeanServer().queryNames(name, query);
return new ResponseEntity<>(IOUtils.serializeObject(objectNames), HttpStatus.OK);
}
diff --git a/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml b/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
index 0ea3261d606..e3c417a4595 100644
--- a/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
+++ b/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
@@ -48,7 +48,6 @@ limitations under the License.
-
diff --git a/geode-web/src/test/java/org/apache/geode/management/internal/web/controllers/QueryExpDeserializationTest.java b/geode-web/src/test/java/org/apache/geode/management/internal/web/controllers/QueryExpDeserializationTest.java
new file mode 100644
index 00000000000..763e45e6bff
--- /dev/null
+++ b/geode-web/src/test/java/org/apache/geode/management/internal/web/controllers/QueryExpDeserializationTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.management.internal.web.controllers;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
+
+import javax.management.Query;
+import javax.management.QueryExp;
+
+import org.apache.commons.io.serialization.ValidatingObjectInputStream;
+import org.junit.Test;
+
+public class QueryExpDeserializationTest {
+ @Test
+ public void testQueryExp() throws Exception {
+ QueryExp query = Query.eq(Query.attr("Name"), Query.value("mock"));
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(query);
+ oos.close();
+
+ byte[] decoded = baos.toByteArray();
+ ValidatingObjectInputStream ois =
+ new ValidatingObjectInputStream(new ByteArrayInputStream(decoded));
+ ois.accept("javax.management.*", "java.lang.*", "java.util.*");
+
+ QueryExp q = (QueryExp) ois.readObject();
+ System.out.println(q);
+ }
+}