From 315118c5aed600e966c93753c1de1fd244242792 Mon Sep 17 00:00:00 2001 From: Nihal Jain Date: Mon, 4 Nov 2024 11:13:17 +0530 Subject: [PATCH] HBASE-28921 Avoid bundling hbase-webapps folder in default jars (#6388) We are bundling all webapp resources in hbase-server, hbase-thrift, hbase-rest and transitively to hbase-shaded-mapreduce jar. This can be an issue, say if any of the Js projects used by hbase are vulnerable, security scan tools like sonatype start flagging the jars too as vulnerable since they contain vulnerable code. With this JIRA, we want to avoid bundling static webapp resources in our jars as these are available during runtime via hbase-webapps directory bundled in our assembly. But, we still need this for our minicluster based tests which expects it to be present in test classpath. Hence, we are copying hbase-webapps to hbase-server tests jar, which contains class SingleProcessHBaseCluster responsible for hbase minicluster creation. This class eventually needs hbase-webapps in classpath during HttpServer initialisation and hence we are adding hbase-webapps to hbase-server test resources. Signed-off-by: Istvan Toth (cherry picked from commit 16c51d83ac980495b18d06e0b7480c665c99275b) --- hbase-rest/pom.xml | 9 +++++ hbase-server/pom.xml | 90 ++++++++++++++++++++++++++++++++++++-------- hbase-thrift/pom.xml | 9 +++++ 3 files changed, 93 insertions(+), 15 deletions(-) diff --git a/hbase-rest/pom.xml b/hbase-rest/pom.xml index 2ac2686ec38c..5b60ed4c963e 100644 --- a/hbase-rest/pom.xml +++ b/hbase-rest/pom.xml @@ -297,6 +297,15 @@ true + + org.apache.maven.plugins + maven-jar-plugin + + + **/hbase-webapps/** + + + maven-antrun-plugin diff --git a/hbase-server/pom.xml b/hbase-server/pom.xml index 132e1faa6ca6..3fa408ce53ef 100644 --- a/hbase-server/pom.xml +++ b/hbase-server/pom.xml @@ -35,6 +35,7 @@ true true true + hbase-webapps @@ -449,24 +450,83 @@ true + + org.codehaus.mojo + build-helper-maven-plugin + + + add-test-source + + add-test-resource + + generate-test-sources + + + + + + target/${hbase.webapps.dir} + + ${hbase.webapps.dir} + + + + + + org.apache.maven.plugins maven-jar-plugin - - - - org/apache/jute/** - org/apache/zookeeper/** - **/*.jsp - hbase-site.xml - hdfs-site.xml - log4j.properties - mapred-queues.xml - mapred-site.xml - - + + + + default-jar + + jar + + package + + + + org/apache/jute/** + org/apache/zookeeper/** + **/*.jsp + hbase-site.xml + hdfs-site.xml + log4j.properties + mapred-queues.xml + mapred-site.xml + + **/hbase-webapps/** + + + + + + test-jar + + test-jar + + package + + tests + + org/apache/jute/** + org/apache/zookeeper/** + **/*.jsp + hbase-site.xml + hdfs-site.xml + log4j.properties + mapred-queues.xml + mapred-site.xml + + + + + diff --git a/hbase-thrift/pom.xml b/hbase-thrift/pom.xml index 64d8fc933ab7..7bfc6f39a2bc 100644 --- a/hbase-thrift/pom.xml +++ b/hbase-thrift/pom.xml @@ -210,6 +210,15 @@ true + + org.apache.maven.plugins + maven-jar-plugin + + + **/hbase-webapps/** + + + maven-antrun-plugin