diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 000000000000..858ee8331184
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1 @@
+* @confluentinc/obs-data @confluentinc/obs-oncall
diff --git a/.semaphore/project.yml b/.semaphore/project.yml
new file mode 100644
index 000000000000..2f7c905344f9
--- /dev/null
+++ b/.semaphore/project.yml
@@ -0,0 +1,42 @@
+# This file is managed by ServiceBot plugin - Semaphore. The content in this file is created using a common
+# template and configurations in service.yml.
+# Modifications in this file will be overwritten by generated content in the nightly run.
+# For more information, please refer to the page:
+# https://confluentinc.atlassian.net/wiki/spaces/Foundations/pages/2871296194/Add+SemaphoreCI
+apiVersion: v1alpha
+kind: Project
+metadata:
+ name: druid
+ description: ""
+spec:
+ visibility: private
+ repository:
+ url: git@github.com:confluentinc/druid.git
+ run_on:
+ - branches
+ - tags
+ - pull_requests
+ pipeline_file: .semaphore/semaphore.yml
+ integration_type: github_app
+ status:
+ pipeline_files:
+ - path: .semaphore/semaphore.yml
+ level: pipeline
+ whitelist:
+ branches:
+ - master
+ - /^.*-confluent$/
+ custom_permissions: true
+ debug_permissions:
+ - empty
+ - default_branch
+ - non_default_branch
+ - pull_request
+ - forked_pull_request
+ - tag
+ attach_permissions:
+ - default_branch
+ - non_default_branch
+ - pull_request
+ - forked_pull_request
+ - tag
diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml
new file mode 100644
index 000000000000..9888b2175bdd
--- /dev/null
+++ b/.semaphore/semaphore.yml
@@ -0,0 +1,143 @@
+version: v1.0
+name: Apache Druid
+agent:
+ machine:
+ type: s1-prod-ubuntu20-04-amd64-1
+execution_time_limit:
+ hours: 3
+blocks:
+ - name: "Install"
+ task:
+ env_vars: &env_vars
+ - name: MVN
+ value: "mvn -B"
+ - name: MAVEN_OPTS
+ value: "-Dmaven.repo.local=.m2"
+ - name: MAVEN_SKIP
+ value: >
+ -Danimal.sniffer.skip=true
+ -Dcheckstyle.skip=true
+ -Ddruid.console.skip=true
+ -Denforcer.skip=true
+ -Dforbiddenapis.skip=true
+ -Dmaven.javadoc.skip=true
+ -Dpmd.skip=true
+ -Dspotbugs.skip=true
+
+ - name: MAVEN_SKIP_TESTS
+ value: "-DskipTests -Djacoco.skip=true"
+ prologue:
+ commands:
+ - echo $SEMAPHORE_WORKFLOW_ID
+ - sem-version java 17
+ - checkout
+ jobs:
+ - name: "Install"
+ commands:
+ # This is a change meant to validate semaphore public builds
+ # so thus removing configurations for Confluent's internal CodeArtifact
+ - rm ~/.m2/settings.xml
+ - >
+ MAVEN_OPTS="${MAVEN_OPTS} -Xmx3000m" ${MVN} clean install
+ -q -ff ${MAVEN_SKIP} ${MAVEN_SKIP_TESTS} -T1C
+ # downstream tests depend on artifacts installed by mvn install into .m2
+ # also cache target to avoid the cost of recompiling tests
+ - tar zcf cache-post-install.tgz .m2 target
+ - artifact push workflow cache-post-install.tgz
+
+ - name: "Tests"
+ task:
+ env_vars: *env_vars
+ prologue:
+ commands:
+ - echo $SEMAPHORE_WORKFLOW_ID
+ - sem-version java 17
+ - checkout
+ - artifact pull workflow cache-post-install.tgz
+ - tar zxf cache-post-install.tgz
+ # This is a change meant to validate semaphore public builds
+ # so thus removing configurations for Confluent's internal CodeArtifact
+ - rm ~/.m2/settings.xml
+ jobs:
+ - name: "animal sniffer checks"
+ commands:
+ - ${MVN} test-compile ${MAVEN_SKIP} ${MAVEN_SKIP_TESTS}
+ - ${MVN} animal-sniffer:check --fail-at-end
+
+ - name: "checkstyle"
+ commands:
+ - ${MVN} checkstyle:checkstyle --fail-at-end
+
+ - name: "enforcer checks"
+ commands:
+ - ${MVN} enforcer:enforce --fail-at-end
+
+ - name: "forbidden api checks"
+ commands:
+ - ${MVN} test-compile ${MAVEN_SKIP} ${MAVEN_SKIP_TESTS}
+ - ${MVN} forbiddenapis:check forbiddenapis:testCheck --fail-at-end
+
+ - name: "pmd checks"
+ commands:
+ - ${MVN} pmd:check --fail-at-end # TODO: consider adding pmd:cpd-check
+
+ - name: "spotbugs checks"
+ commands:
+ - ${MVN} spotbugs:check --fail-at-end -pl '!benchmarks'
+
+ - name: "analyze dependencies"
+ commands:
+ - >
+ ${MVN} ${MAVEN_SKIP} dependency:analyze -DoutputXML=true -DignoreNonCompile=true -DfailOnWarning=true --fail-at-end || { echo "
+
+ The dependency analysis has found a dependency that is either:
+ 1) Used and undeclared: These are available as a transitive dependency but should be explicitly
+ added to the POM to ensure the dependency version. The XML to add the dependencies to the POM is
+ shown above.
+ 2) Unused and declared: These are not needed and removing them from the POM will speed up the build
+ and reduce the artifact size. The dependencies to remove are shown above.
+ If there are false positive dependency analysis warnings, they can be suppressed:
+ https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html#usedDependencies
+ https://maven.apache.org/plugins/maven-dependency-plugin/examples/exclude-dependencies-from-dependency-analysis.html
+ For more information, refer to:
+ https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html
+ " && false; }
+
+ - name: "Confluent Extensions"
+ env_vars:
+ - name: MAVEN_PROJECTS
+ value: extensions-contrib/confluent-extensions
+ commands: &run_tests
+ - >
+ MAVEN_OPTS="${MAVEN_OPTS} -Xmx1g" ${MVN} test -pl ${MAVEN_PROJECTS}
+ ${MAVEN_SKIP} -Dremoteresources.skip=true
+
+ - name: "Server"
+ env_vars:
+ - name: MAVEN_PROJECTS
+ value: server
+ commands: *run_tests
+
+ - name: "Processing"
+ env_vars:
+ - name: MAVEN_PROJECTS
+ value: processing
+ commands: *run_tests
+
+ - name: "Indexing Service"
+ env_vars:
+ - name: MAVEN_PROJECTS
+ value: indexing-service
+ commands: *run_tests
+
+ - name: "Kafka Indexing Service"
+ env_vars:
+ - name: MAVEN_PROJECTS
+ value: extensions-core/kafka-indexing-service
+ commands: *run_tests
+
+ - name: "Other Tests"
+ env_vars:
+ - name: MAVEN_PROJECTS
+ value: '!server,!processing,!indexing-service,!extensions-core/kafka-indexing-service,!extensions-contrib/confluent-extensions,!integration-tests-ex/cases'
+ commands: *run_tests
diff --git a/codestyle/checkstyle-suppressions.xml b/codestyle/checkstyle-suppressions.xml
index 01868d73f34f..6d42d891382f 100644
--- a/codestyle/checkstyle-suppressions.xml
+++ b/codestyle/checkstyle-suppressions.xml
@@ -70,4 +70,8 @@
+
+
+
+
diff --git a/crypto-algos.txt b/crypto-algos.txt
new file mode 100644
index 000000000000..071300bb46a3
--- /dev/null
+++ b/crypto-algos.txt
@@ -0,0 +1,1925 @@
+
+
+┌───────────────────┐
+│ 251 Code Findings │
+└───────────────────┘
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/common/utils/SocketUtil.java [0m
+ [1m[24minfosec-fips-rules.java.unencrypted-socket[0m
+ Detected use of network without encryption.
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Appears that this is using the network without encryption, please
+ verify and fix. https://go/fips-compliance
+ \1
+ /1
+ 44┆ try (ServerSocket socket = [1m[24mnew ServerSocket(currPort)[0m) {
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/crypto/CryptoService.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 120┆ Cipher ecipher = [1m[24mCipher.getInstance(transformation)[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 144┆ Cipher dcipher = [1m[24mCipher.getInstance(transformation)[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 156┆ SecretKeyFactory factory = [1m[24mSecretKeyFactory.getInstance(secretKeyFactoryAlg)[0m;
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/Binders.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 55┆ return PolyBind.optionBinder(binder, [1m[24mKey.get(DataSegmentPusher.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 60┆ return PolyBind.optionBinder(binder, [1m[24mKey.get(TaskLogs.class)[0m);
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/DruidSecondaryModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 72┆ binder.bind(ObjectMapper.class).to([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/GuiceAnnotationIntrospector.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 61┆ return [1m[24mKey.get(m.getGenericType())[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 63┆ return [1m[24mKey.get(m.getGenericType(), guiceAnnotation)[0m;
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/JacksonConfigProvider.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 38┆ binder.bind([1m[24mKey.get(Types.newParameterizedType(Supplier.class, clazz))[0m)
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/JsonConfigProvider.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 91┆ [1m[24mKey.get(classToProvide)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 92┆ (Key) [1m[24mKey.get(Types.newParameterizedType(Supplier.class, classToProvide))[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 109┆ [1m[24mKey.get(classToProvide)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 110┆ (Key) [1m[24mKey.get(Types.newParameterizedType(Supplier.class, classToProvide))[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 121┆ [1m[24mKey.get(classToProvide, annotation)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 122┆ (Key) [1m[24mKey.get(Types.newParameterizedType(Supplier.class, classToProvide), annotation)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 138┆ [1m[24mKey.get(classToProvide, annotation)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 139┆ (Key) [1m[24mKey.get(Types.newParameterizedType(Supplier.class, classToProvide), annotation)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 181┆ supplierKey = [1m[24mKey.get(supType, bindKey.getAnnotationType())[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 183┆ supplierKey = [1m[24mKey.get(supType, bindKey.getAnnotation())[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 185┆ supplierKey = [1m[24mKey.get(supType)[0m;
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/LifecycleModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 71┆ registerKey(binder, [1m[24mKey.get(clazz)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 96┆ registerKey(binder, [1m[24mKey.get(clazz, annotation)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 141┆ final Key> keyHolderKey = [1m[24mKey.get(new TypeLiteral>(){},
+ Names.named("lifecycle"))[0m;
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/ListProvider.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 40┆ return add([1m[24mKey.get(clazz)[0m);
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/guice/PolyBind.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 178┆ implsMap = (Map>) injector.getInstance([1m[24mKey.get(mapType,
+ key.getAnnotation())[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 180┆ implsMap = (Map>) injector.getInstance([1m[24mKey.get(mapType,
+ key.getAnnotationType())[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 182┆ implsMap = (Map>) injector.getInstance([1m[24mKey.get(mapType)[0m);
+
+ [36m[22m[24m core/src/main/java/org/apache/druid/java/util/http/client/HttpClientInit.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 111┆ final KeyStore ks = [1m[24mKeyStore.getInstance(KeyStore.getDefaultType())[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 111┆ final KeyStore ks = KeyStore.getInstance([1m[24mKeyStore.getDefaultType()[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 117┆ final SSLContext sslContext = [1m[24mSSLContext.getInstance("TLS")[0m;
+ ⋮┆----------------------------------------
+ [1m[24minfosec-fips-rules.java.java.lang.security.audit.weak-ssl-context.weak-ssl-context[0m
+ An insecure SSL context was detected. TLS versions 1.0, 1.1, and all SSL versions are
+ considered weak encryption and are deprecated. Use SSLContext.getInstance("TLSv1.2") for the
+ best security.
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// A minimum version of TLS1.2 is required for FIPS compliance. Please
+ review. https://go/fips-compliance
+ \1
+ /1
+ 117┆ final SSLContext sslContext = [1m[24mSSLContext.getInstance("TLS")[0m;
+
+ [36m[22m[24m
+ extensions-contrib/ambari-metrics-emitter/src/main/java/org/apache/druid/emitter/ambari/metrics/AmbariMetricsEmitterMo
+ dule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 62┆ .map((String name) -> injector.getInstance([1m[24mKey.get(Emitter.class, Names.named(name))[0m))
+
+ [36m[22m[24m
+ extensions-contrib/cassandra-storage/src/main/java/org/apache/druid/storage/cassandra/CassandraDruidModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 44┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DataSegmentPusher.class)[0m)
+
+ [36m[22m[24m
+ extensions-contrib/dropwizard-emitter/src/main/java/org/apache/druid/emitter/dropwizard/DropwizardEmitterModule.java
+ [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 65┆ [1m[24mKey.get([0m
+ 66┆ [1m[24m Emitter.class,[0m
+ 67┆ [1m[24m Names.named(s)[0m
+ 68┆ [1m[24m)[0m))
+
+ [36m[22m[24m
+ extensions-contrib/graphite-emitter/src/main/java/org/apache/druid/emitter/graphite/GraphiteEmitterModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 65┆ return injector.getInstance([1m[24mKey.get(Emitter.class, Names.named(alertEmitterName))[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 74┆ return injector.getInstance([1m[24mKey.get(Emitter.class, Names.named(requestLogEmitterName))[0m);
+
+ [36m[22m[24m extensions-contrib/influxdb-emitter/src/main/java/org/apache/druid/emitter/influxdb/InfluxdbEmitter.java
+ [0m
+ [1m[24minfosec-fips-rules.java.insecure-hostname-verifier[0m
+ Insecure HostnameVerifier implementation detected. This will accept any SSL certificate with
+ any hostname, which creates the possibility for man-in-the-middle attacks.
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// This Insecure HostnameVerifier will accept any SSL certificate without
+ a hostname, which is insecure. Please review. https://go/fips-compliance
+ \1
+ /1
+ 31┆ [1m[24mimport org.apache.http.conn.ssl.NoopHostnameVerifier[0m;
+ ⋮┆----------------------------------------
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 233┆ KeyStore store = [1m[24mKeyStore.getInstance(influxdbEmitterConfig.getTrustStoreType())[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 237┆ sslContext = [1m[24mSSLContext.getInstance("TLS")[0m;
+ ⋮┆----------------------------------------
+ [1m[24minfosec-fips-rules.java.java.lang.security.audit.weak-ssl-context.weak-ssl-context[0m
+ An insecure SSL context was detected. TLS versions 1.0, 1.1, and all SSL versions are
+ considered weak encryption and are deprecated. Use SSLContext.getInstance("TLSv1.2") for the
+ best security.
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// A minimum version of TLS1.2 is required for FIPS compliance. Please
+ review. https://go/fips-compliance
+ \1
+ /1
+ 237┆ sslContext = [1m[24mSSLContext.getInstance("TLS")[0m;
+
+ [36m[22m[24m
+ extensions-contrib/influxdb-emitter/src/main/java/org/apache/druid/emitter/influxdb/InfluxdbEmitterConfig.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 91┆ this.trustStoreType = trustStoreType == null ? [1m[24mKeyStore.getDefaultType()[0m : trustStoreType;
+
+ [36m[22m[24m
+ extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/K8sOverlordModule.java
+ [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 52┆ [1m[24mKey.get(TaskRunnerFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 53┆ [1m[24mKey.get(KubernetesTaskRunnerFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 57┆ [1m[24mKey.get(TaskRunnerFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 69┆ PolyBind.createChoice(binder, "druid.indexer.logs.type", [1m[24mKey.get(TaskLogs.class)[0m,
+ Key.get(FileTaskLogs.class));
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 69┆ PolyBind.createChoice(binder, "druid.indexer.logs.type", Key.get(TaskLogs.class),
+ [1m[24mKey.get(FileTaskLogs.class)[0m);
+
+ [36m[22m[24m
+ extensions-contrib/sqlserver-metadata-storage/src/main/java/org/apache/druid/metadata/storage/sqlserver/SQLServerMetad
+ ataStorageModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 62┆ .optionBinder(binder, [1m[24mKey.get(MetadataStorageProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 68┆ .optionBinder(binder, [1m[24mKey.get(MetadataStorageConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 74┆ .optionBinder(binder, [1m[24mKey.get(SQLMetadataConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 79┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataStorageActionHandlerFactory.class)[0m)
+
+ [36m[22m[24m extensions-core/druid-basic-security/src/main/java/org/apache/druid/security/basic/BasicAuthUtils.java
+ [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 108┆ SecretKeyFactory keyFactory = [1m[24mSecretKeyFactory.getInstance(ALGORITHM)[0m;
+
+ [36m[22m[24m
+ extensions-core/druid-basic-security/src/main/java/org/apache/druid/security/basic/BasicSecurityDruidModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 251┆ serviceName = injector.getInstance([1m[24mKey.get(String.class, Names.named("serviceName"))[0m);
+
+ [36m[22m[24m
+ extensions-core/kubernetes-extensions/src/main/java/org/apache/druid/k8s/discovery/K8sDiscoveryModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 78┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidNodeDiscoveryProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 83┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidNodeAnnouncer.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 88┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidLeaderSelector.class, Coordinator.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 95┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidLeaderSelector.class, IndexingService.class)[0m)
+
+ [36m[22m[24m
+ extensions-core/lookups-cached-global/src/main/java/org/apache/druid/server/lookup/namespace/NamespaceExtractionModule
+ .java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 84┆ .createChoiceWithDefault(binder, TYPE_PREFIX, [1m[24mKey.get(NamespaceExtractionCacheManager.class)[0m,
+ "onHeap")
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 88┆ .optionBinder(binder, [1m[24mKey.get(NamespaceExtractionCacheManager.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 94┆ .optionBinder(binder, [1m[24mKey.get(NamespaceExtractionCacheManager.class)[0m)
+
+ [36m[22m[24m extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/exec/MSQTasks.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 124┆ return injector.getInstance([1m[24mKey.get(StorageConnector.class, MultiStageQuery.class)[0m);
+
+ [36m[22m[24m extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/guice/MSQDurableStorageModule.java
+ [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 86┆ binder.bind([1m[24mKey.get(StorageConnector.class, MultiStageQuery.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 87┆ .toProvider([1m[24mKey.get(StorageConnectorProvider.class, MultiStageQuery.class)[0m)
+
+ [36m[22m[24m
+ extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/indexing/IndexerControllerContext.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 82┆ return injector.getInstance([1m[24mKey.get(DruidNode.class, Self.class)[0m);
+
+ [36m[22m[24m extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/indexing/IndexerWorkerContext.java
+ [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 101┆ injector.getInstance([1m[24mKey.get(ServiceClientFactory.class, EscalatedGlobal.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 243┆ return injector.getInstance([1m[24mKey.get(DruidNode.class, Self.class)[0m);
+
+ [36m[22m[24m extensions-core/multi-stage-query/src/main/java/org/apache/druid/msq/indexing/MSQControllerTask.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 182┆ injector.getInstance([1m[24mKey.get(ServiceClientFactory.class, EscalatedGlobal.class)[0m);
+
+ [36m[22m[24m
+ extensions-core/mysql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/mysql/MySQLMetadataStorageModul
+ e.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 72┆ .optionBinder(binder, [1m[24mKey.get(MetadataStorageProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 78┆ .optionBinder(binder, [1m[24mKey.get(MetadataStorageConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 84┆ .optionBinder(binder, [1m[24mKey.get(SQLMetadataConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 89┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataStorageActionHandlerFactory.class)[0m)
+
+ [36m[22m[24m
+ extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLMetad
+ ataStorageModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 73┆ .optionBinder(binder, [1m[24mKey.get(MetadataStorageProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 79┆ .optionBinder(binder, [1m[24mKey.get(MetadataStorageConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 85┆ .optionBinder(binder, [1m[24mKey.get(SQLMetadataConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 90┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataStorageActionHandlerFactory.class)[0m)
+
+ [36m[22m[24m indexing-hadoop/src/main/java/org/apache/druid/indexer/HadoopDruidIndexerConfig.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 115┆ [1m[24mKey.get(DruidNode.class, Self.class)[0m,
+
+ [36m[22m[24m indexing-service/src/main/java/org/apache/druid/guice/IndexingServiceTaskLogsModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 40┆ PolyBind.createChoice(binder, "druid.indexer.logs.type", [1m[24mKey.get(TaskLogs.class)[0m,
+ Key.get(FileTaskLogs.class));
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 40┆ PolyBind.createChoice(binder, "druid.indexer.logs.type", Key.get(TaskLogs.class),
+ [1m[24mKey.get(FileTaskLogs.class)[0m);
+
+ [36m[22m[24m indexing-service/src/main/java/org/apache/druid/indexing/common/IndexTaskClient.java [0m
+ [1m[24minfosec-fips-rules.java.unencrypted-socket[0m
+ Detected use of network without encryption.
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Appears that this is using the network without encryption, please
+ verify and fix. https://go/fips-compliance
+ \1
+ /1
+ 208┆ [1m[24mnew Socket(host, port)[0m.close();
+
+ [36m[22m[24m indexing-service/src/main/java/org/apache/druid/indexing/overlord/PortFinder.java [0m
+ [1m[24minfosec-fips-rules.java.unencrypted-socket[0m
+ Detected use of network without encryption.
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Appears that this is using the network without encryption, please
+ verify and fix. https://go/fips-compliance
+ \1
+ /1
+ 50┆ [1m[24mnew ServerSocket(portNum)[0m.close();
+
+ [36m[22m[24m integration-tests/src/main/java/org/apache/druid/cli/CliCustomNodeRole.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 102┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 129┆ final ObjectMapper jsonMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m integration-tests-ex/tools/src/main/java/org/apache/druid/testing/tools/CliCustomNodeRole.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 103┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 129┆ final ObjectMapper jsonMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m processing/src/main/java/org/apache/druid/jackson/JacksonModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 46┆ binder.bind(ObjectMapper.class).to([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m processing/src/main/java/org/apache/druid/query/aggregation/JavaScriptAggregatorFactory.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 255┆ MessageDigest md = [1m[24mMessageDigest.getInstance("SHA-1")[0m;
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/client/cache/MemcachedCache.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 416┆ SSLContext sslContext = [1m[24mSSLContext.getInstance("TLS")[0m;
+ ⋮┆----------------------------------------
+ [1m[24minfosec-fips-rules.java.java.lang.security.audit.weak-ssl-context.weak-ssl-context[0m
+ An insecure SSL context was detected. TLS versions 1.0, 1.1, and all SSL versions are
+ considered weak encryption and are deprecated. Use SSLContext.getInstance("TLSv1.2") for the
+ best security.
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// A minimum version of TLS1.2 is required for FIPS compliance. Please
+ review. https://go/fips-compliance
+ \1
+ /1
+ 416┆ SSLContext sslContext = [1m[24mSSLContext.getInstance("TLS")[0m;
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/curator/discovery/DiscoveryModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 110┆ registerKey(binder, [1m[24mKey.get(new TypeLiteral(){})[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 124┆ registerKey(binder, [1m[24mKey.get(new TypeLiteral(){}, annotation)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 139┆ registerKey(binder, [1m[24mKey.get(new TypeLiteral(){}, annotation)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 170┆ .to([1m[24mKey.get(CuratorServiceAnnouncer.class, Names.named(NAME))[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 173┆ binder.bind([1m[24mKey.get(ServiceAnnouncer.Noop.class, Names.named(NAME))[0m).toInstance(new
+ ServiceAnnouncer.Noop());
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 175┆ .to([1m[24mKey.get(ServiceAnnouncer.Noop.class, Names.named(NAME))[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 180┆ PolyBind.createChoiceWithDefault(binder, INTERNAL_DISCOVERY_PROP,
+ [1m[24mKey.get(DruidNodeAnnouncer.class)[0m, CURATOR_KEY);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 185┆ [1m[24mKey.get(DruidNodeDiscoveryProvider.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 192┆ [1m[24mKey.get(DruidLeaderSelector.class, Coordinator.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 199┆ [1m[24mKey.get(DruidLeaderSelector.class, IndexingService.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 203┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidNodeDiscoveryProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 208┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidNodeAnnouncer.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 213┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidLeaderSelector.class, Coordinator.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 222┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidLeaderSelector.class, IndexingService.class)[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/CacheModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 51┆ binder.bind(Cache.class).toProvider([1m[24mKey.get(CacheProvider.class,
+ Global.class)[0m).in(ManageLifecycle.class);
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/DruidInjectorBuilder.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 75┆ this.jsonMapper = baseInjector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 76┆ this.smileMapper = baseInjector.getInstance([1m[24mKey.get(ObjectMapper.class, Smile.class)[0m);
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/LocalDataStorageDruidModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 61┆ [1m[24mKey.get(DataSegmentPusher.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 62┆ [1m[24mKey.get(LocalDataSegmentPusher.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 68┆ [1m[24mKey.get(DataSegmentKiller.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 69┆ [1m[24mKey.get(LocalDataSegmentKiller.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 85┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DataSegmentPusher.class)[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/QueryRunnerFactoryModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 75┆ .toProvider([1m[24mKey.get(QuerySchedulerProvider.class, Global.class)[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/QueryToolChestModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 110┆ [1m[24mKey.get(GenericQueryMetricsFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 111┆ [1m[24mKey.get(DefaultGenericQueryMetricsFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 114┆ .optionBinder(binder, [1m[24mKey.get(GenericQueryMetricsFactory.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 121┆ [1m[24mKey.get(GroupByQueryMetricsFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 122┆ [1m[24mKey.get(DefaultGroupByQueryMetricsFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 125┆ .optionBinder(binder, [1m[24mKey.get(GroupByQueryMetricsFactory.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 132┆ [1m[24mKey.get(TimeseriesQueryMetricsFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 133┆ [1m[24mKey.get(DefaultTimeseriesQueryMetricsFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 136┆ .optionBinder(binder, [1m[24mKey.get(TimeseriesQueryMetricsFactory.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 143┆ [1m[24mKey.get(TopNQueryMetricsFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 144┆ [1m[24mKey.get(DefaultTopNQueryMetricsFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 147┆ .optionBinder(binder, [1m[24mKey.get(TopNQueryMetricsFactory.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 154┆ [1m[24mKey.get(SearchQueryMetricsFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 155┆ [1m[24mKey.get(DefaultSearchQueryMetricsFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 158┆ .optionBinder(binder, [1m[24mKey.get(SearchQueryMetricsFactory.class)[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/SQLMetadataStorageDruidModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 72┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataStorageConnector.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 73┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataStorageProvider.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 74┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(SQLMetadataConnector.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 76┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(SegmentsMetadataManager.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 77┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(SegmentsMetadataManagerProvider.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 78┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataRuleManager.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 79┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataRuleManagerProvider.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 80┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataSegmentPublisher.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 81┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataSegmentPublisherProvider.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 82┆ PolyBind.createChoiceWithDefault(binder, prop,
+ [1m[24mKey.get(IndexerMetadataStorageCoordinator.class)[0m, defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 83┆ PolyBind.createChoiceWithDefault(binder, prop,
+ [1m[24mKey.get(MetadataStorageActionHandlerFactory.class)[0m, defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 84┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataStorageUpdaterJobHandler.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 85┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(AuditManager.class)[0m, defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 86┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(AuditManagerProvider.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 87┆ PolyBind.createChoiceWithDefault(binder, prop, [1m[24mKey.get(MetadataSupervisorManager.class)[0m,
+ defaultValue);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 93┆ PolyBind.optionBinder(binder, [1m[24mKey.get(SegmentsMetadataManager.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 98┆ PolyBind.optionBinder(binder, [1m[24mKey.get(SegmentsMetadataManagerProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 103┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataRuleManager.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 108┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataRuleManagerProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 113┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataSegmentPublisher.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 118┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataSegmentPublisherProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 123┆ PolyBind.optionBinder(binder, [1m[24mKey.get(IndexerMetadataStorageCoordinator.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 128┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataStorageUpdaterJobHandler.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 135┆ PolyBind.optionBinder(binder, [1m[24mKey.get(AuditManager.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 140┆ PolyBind.optionBinder(binder, [1m[24mKey.get(AuditManagerProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 145┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataSupervisorManager.class)[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/http/AbstractHttpClientProvider.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 49┆ configKey = [1m[24mKey.get([0m
+ 50┆ [1m[24m new TypeLiteral>()[0m
+ 51┆ [1m[24m {[0m
+ 52┆ [1m[24m }, annotation[0m
+ 53┆ [1m[24m)[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 54┆ sslContextKey = [1m[24mKey.get(SSLContext.class, annotation)[0m;
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/security/AuthenticatorModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 41┆ [1m[24mKey.get(Authenticator.class)[0m
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/guice/security/AuthorizerModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 41┆ [1m[24mKey.get(Authorizer.class)[0m
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/initialization/Log4jShutterDownerModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 77┆ binder.bind([1m[24mKey.get(Log4jShutterDowner.class, Names.named("ForTheEagerness"))[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/metadata/storage/derby/DerbyMetadataStorageDruidModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 52┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataStorageProvider.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 57┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataStorageConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 62┆ PolyBind.optionBinder(binder, [1m[24mKey.get(SQLMetadataConnector.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 67┆ PolyBind.optionBinder(binder, [1m[24mKey.get(MetadataStorageActionHandlerFactory.class)[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/emitter/ComposingEmitterModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 65┆ return injector.getInstance([1m[24mKey.get(Emitter.class, Names.named(s))[0m);
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/emitter/HttpEmitterModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 69┆ context = [1m[24mSSLContext.getDefault()[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 122┆ effectiveSSLContext = [1m[24mSSLContext.getDefault()[0m;
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/initialization/jetty/ChatHandlerServerModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 78┆ binder.bind(DruidNode.class).annotatedWith(RemoteChatHandler.class).to([1m[24mKey.get(DruidNode.class,
+ Self.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 79┆
+ binder.bind(ServerConfig.class).annotatedWith(RemoteChatHandler.class).to([1m[24mKey.get(ServerConfig.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 80┆
+ binder.bind(TLSServerConfig.class).annotatedWith(RemoteChatHandler.class).to([1m[24mKey.get(TLSServerConfig.class)[0m)
+ ;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 109┆ injector.getExistingBinding([1m[24mKey.get(SslContextFactory.Server.class)[0m),
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/initialization/jetty/CliIndexerServerModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 104┆ binder.bind(DruidNode.class).annotatedWith(RemoteChatHandler.class).to([1m[24mKey.get(DruidNode.class,
+ Self.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 105┆
+ binder.bind(ServerConfig.class).annotatedWith(RemoteChatHandler.class).to([1m[24mKey.get(ServerConfig.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 106┆
+ binder.bind(TLSServerConfig.class).annotatedWith(RemoteChatHandler.class).to([1m[24mKey.get(TLSServerConfig.class)[0m)
+ ;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 135┆ injector.getExistingBinding([1m[24mKey.get(SslContextFactory.Server.class)[0m),
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/initialization/jetty/JettyServerInitUtils.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 65┆ injector.getInstance([1m[24mKey.get(new TypeLiteral>() {})[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 72┆ injector.getInstance([1m[24mKey.get(new TypeLiteral>() {})[0m);
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/initialization/jetty/JettyServerModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 184┆ injector.getExistingBinding([1m[24mKey.get(SslContextFactory.Server.class)[0m),
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 313┆ ? [1m[24mKeyStore.getDefaultType()[0m
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/metrics/MetricsModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 95┆ binder.bind([1m[24mKey.get(MonitorScheduler.class, Names.named("ForTheEagerness"))[0m)
+
+ [36m[22m[24m server/src/main/java/org/apache/druid/server/security/TLSUtils.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 184┆ sslContext = [1m[24mSSLContext.getInstance(protocol == null ? "TLSv1.2" : protocol)[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 185┆ KeyStore trustStore = [1m[24mKeyStore.getInstance(trustStoreType == null[0m
+ 186┆ [1m[24m ? KeyStore.getDefaultType()[0m
+ 187┆ [1m[24m : trustStoreType)[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 186┆ ? [1m[24mKeyStore.getDefaultType()[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 201┆ KeyStore keyStore = [1m[24mKeyStore.getInstance(keyStoreType == null[0m
+ 202┆ [1m[24m ? KeyStore.getDefaultType()[0m
+ 203┆ [1m[24m : keyStoreType)[0m;
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 202┆ ? [1m[24mKeyStore.getDefaultType()[0m
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliBroker.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 171┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliCoordinator.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 322┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliHistorical.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 138┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliIndexer.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 186┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliMiddleManager.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 145┆ [1m[24mKey.get(RowIngestionMetersFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 146┆ [1m[24mKey.get(DropwizardRowIngestionMetersFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 149┆ PolyBind.optionBinder(binder, [1m[24mKey.get(RowIngestionMetersFactory.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 174┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 184┆ [1m[24mKey.get(IntermediaryDataManager.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 185┆ [1m[24mKey.get(LocalIntermediaryDataManager.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 189┆ [1m[24mKey.get(IntermediaryDataManager.class)[0m
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliOverlord.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 227┆ [1m[24mKey.get(RowIngestionMetersFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 228┆ [1m[24mKey.get(DropwizardRowIngestionMetersFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 231┆ PolyBind.optionBinder(binder, [1m[24mKey.get(RowIngestionMetersFactory.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 276┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 286┆ [1m[24mKey.get(TaskStorage.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 287┆ [1m[24mKey.get(HeapMemoryTaskStorage.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 290┆ PolyBind.optionBinder(binder, [1m[24mKey.get(TaskStorage.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 303┆ [1m[24mKey.get(IntermediaryDataManager.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 304┆ [1m[24mKey.get(LocalIntermediaryDataManager.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 308┆ [1m[24mKey.get(IntermediaryDataManager.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 321┆ [1m[24mKey.get(TaskRunnerFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 322┆ [1m[24mKey.get(HttpRemoteTaskRunnerFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 326┆ [1m[24mKey.get(TaskRunnerFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 359┆ [1m[24mKey.get(ProvisioningStrategy.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 360┆ [1m[24mKey.get(SimpleWorkerProvisioningStrategy.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 364┆ [1m[24mKey.get(ProvisioningStrategy.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 413┆ final ObjectMapper jsonMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliPeon.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 354┆ [1m[24mKey.get(RowIngestionMetersFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 355┆ [1m[24mKey.get(DropwizardRowIngestionMetersFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 358┆ PolyBind.optionBinder(binder, [1m[24mKey.get(RowIngestionMetersFactory.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 371┆ [1m[24mKey.get(ChatHandlerProvider.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 372┆ [1m[24mKey.get(ServiceAnnouncingChatHandlerProvider.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 375┆ PolyBind.optionBinder(binder, [1m[24mKey.get(ChatHandlerProvider.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 404┆ [1m[24mKey.get(TaskActionClientFactory.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 405┆ [1m[24mKey.get(RemoteTaskActionClientFactory.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 408┆ PolyBind.optionBinder(binder, [1m[24mKey.get(TaskActionClientFactory.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 470┆ [1m[24mKey.get(IntermediaryDataManager.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 471┆ [1m[24mKey.get(LocalIntermediaryDataManager.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 475┆ [1m[24mKey.get(IntermediaryDataManager.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 483┆ [1m[24mKey.get(ShuffleClient.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 484┆ [1m[24mKey.get(HttpShuffleClient.class)[0m
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 488┆ [1m[24mKey.get(ShuffleClient.class)[0m
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CliRouter.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 128┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(SelfDiscoveryResource.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CoordinatorJettyServerInitializer.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 81┆ final ObjectMapper jsonMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/CreateTables.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 83┆ [1m[24mKey.get(MetadataStorageConnectorConfig.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 107┆ [1m[24mKey.get(MetadataStorageTablesConfig.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 112┆ [1m[24mKey.get(DruidNode.class, Self.class)[0m,
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/DumpSegment.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 233┆ final ObjectMapper objectMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 280┆ final ObjectMapper objectMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class,
+ Json.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 360┆ final ObjectMapper objectMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class,
+ Json.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 444┆ final ObjectMapper objectMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class,
+ Json.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 560┆ final ObjectMapper objectMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class,
+ Json.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/ExportMetadata.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 148┆ [1m[24mKey.get(MetadataStorageConnectorConfig.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 172┆ [1m[24mKey.get(MetadataStorageTablesConfig.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 177┆ [1m[24mKey.get(DruidNode.class, Self.class)[0m,
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/MiddleManagerJettyServerInitializer.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 72┆ final ObjectMapper jsonMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/QueryJettyServerInitializer.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 98┆ final ObjectMapper jsonMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/ResetCluster.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 90┆ [1m[24mKey.get(DruidNode.class, Self.class)[0m,
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/RouterJettyServerInitializer.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 118┆ final ObjectMapper jsonMapper = injector.getInstance([1m[24mKey.get(ObjectMapper.class, Json.class)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/cli/ServerRunnable.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 84┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(DiscoverySideEffectsProvider.Child.class)[0m);
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 98┆ LifecycleModule.registerKey(binder, [1m[24mKey.get(DiscoverySideEffectsProvider.Child.class,
+ annotation)[0m);
+
+ [36m[22m[24m services/src/main/java/org/apache/druid/guice/AbstractDruidServiceModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 79┆ .to([1m[24mKey.get(new TypeLiteral>>(){},
+ role.getDruidServiceInjectName())[0m);
+
+ [36m[22m[24m sql/src/main/java/org/apache/druid/sql/calcite/aggregation/SqlAggregationModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 52┆ [1m[24mKey.get(SqlAggregator.class, ApproxCountDistinct.class)[0m,
+
+ [36m[22m[24m sql/src/main/java/org/apache/druid/sql/guice/SqlBindings.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 57┆ PolyBind.optionBinder(binder, [1m[24mKey.get(SqlAggregator.class, ApproxCountDistinct.class)[0m)
+
+ [36m[22m[24m sql/src/main/java/org/apache/druid/sql/guice/SqlModule.java [0m
+ [1m[24minfosec-fips-rules.java.detect-crypto-usage[0m
+ This catchall rule detects the use of any cryptographic function for review
+
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 80┆ PolyBind.optionBinder(binder, [1m[24mKey.get(ViewManager.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 88┆ [1m[24mKey.get(ViewManager.class)[0m,
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 92┆ PolyBind.optionBinder(binder, [1m[24mKey.get(DruidSchemaManager.class)[0m)
+ ⋮┆----------------------------------------
+ [32m[22m[24m ▶▶┆ Autofix ▶[0m s/(.*)/// Detected the use of a crypographic function. Please review this for
+ compliance. https://go/fips-compliance
+ \1
+ /1
+ 100┆ [1m[24mKey.get(DruidSchemaManager.class)[0m,
+
diff --git a/distribution/docker/Dockerfile b/distribution/docker/Dockerfile
index 2bcd28f873a6..146f4dd9574e 100644
--- a/distribution/docker/Dockerfile
+++ b/distribution/docker/Dockerfile
@@ -18,6 +18,7 @@
#
ARG JDK_VERSION=17
+ARG BASE_IMAGE=gcr.io/distroless/java$JDK_VERSION-debian12
# The platform is explicitly specified as x64 to build the Druid distribution.
# This is because it's not able to build the distribution on arm64 due to dependency problem of web-console. See: https://github.com/apache/druid/issues/13012
@@ -49,38 +50,46 @@ RUN --mount=type=cache,target=/root/.m2 VERSION=$(mvn -B -q org.apache.maven.plu
&& tar -zxf ./distribution/target/apache-druid-${VERSION}-bin.tar.gz -C /opt \
&& mv /opt/apache-druid-${VERSION} /opt/druid
-FROM alpine:3 as bash-static
+FROM busybox:1.34.1-glibc as busybox
+
+FROM $BASE_IMAGE
+
+LABEL maintainer="Apache Druid Developers "
+
+COPY --from=busybox /bin/busybox /busybox/busybox
+RUN ["/busybox/busybox", "sh", "-c", "if [ ! -x \"$(command -v bash)\" ]; then \
+ /busybox/busybox --install /bin; \
+ else \
+ rm /busybox/busybox; \
+ fi;"]
+# Predefined builtin arg, see: https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
ARG TARGETARCH
+
#
# Download bash-static binary to execute scripts that require bash.
# Although bash-static supports multiple platforms, but there's no need for us to support all those platform, amd64 and arm64 are enough.
#
ARG BASH_URL_BASE="https://github.com/robxu9/bash-static/releases/download/5.1.016-1.2.3"
-RUN if [ "$TARGETARCH" = "arm64" ]; then \
- BASH_URL="${BASH_URL_BASE}/bash-linux-aarch64" ; \
- elif [ "$TARGETARCH" = "amd64" ]; then \
- BASH_URL="${BASH_URL_BASE}/bash-linux-x86_64" ; \
+RUN if [ ! -x "$(command -v bash)" ]; then \
+ if [ "$TARGETARCH" = "arm64" ]; then \
+ BASH_URL="${BASH_URL_BASE}/bash-linux-aarch64" ; \
+ elif [ "$TARGETARCH" = "amd64" ]; then \
+ BASH_URL="${BASH_URL_BASE}/bash-linux-x86_64" ; \
+ else \
+ echo "Unsupported architecture ($TARGETARCH)" && exit 1; \
+ fi; \
+ echo "Downloading bash-static from ${BASH_URL}" \
+ && wget ${BASH_URL} -O /bin/bash \
+ && chmod 755 /bin/bash; \
+ fi;
+
+RUN if [ ! -x "$(command -v useradd)" ]; then \
+ addgroup -S -g 1000 druid \
+ && adduser -S -u 1000 -D -H -h /opt/druid -s /bin/sh -g '' -G druid druid; \
else \
- echo "Unsupported architecture ($TARGETARCH)" && exit 1; \
- fi; \
- echo "Downloading bash-static from ${BASH_URL}" \
- && wget ${BASH_URL} -O /bin/bash
-
-FROM busybox:1.35.0-glibc as busybox
-
-FROM gcr.io/distroless/java$JDK_VERSION-debian12
-LABEL maintainer="Apache Druid Developers "
-
-COPY --from=busybox /bin/busybox /busybox/busybox
-RUN ["/busybox/busybox", "--install", "/bin"]
-
-
-RUN addgroup -S -g 1000 druid \
- && adduser -S -u 1000 -D -H -h /opt/druid -s /bin/sh -g '' -G druid druid
-
-
-COPY --from=bash-static /bin/bash /bin/bash
-RUN chmod 755 /bin/bash
+ groupadd --system --gid 1000 druid \
+ && useradd --system --uid 1000 -M --home /opt/druid --shell /bin/sh -c '' --gid 1000 druid; \
+ fi;
COPY --chown=druid:druid --from=builder /opt /opt
COPY distribution/docker/druid.sh /druid.sh
@@ -93,6 +102,13 @@ RUN mkdir /opt/druid/var /opt/shared \
&& chown druid:druid /opt/druid/var /opt/shared \
&& chmod 775 /opt/druid/var /opt/shared
+# Install iproute2 to get the ip command needed to set config of druid.host IP address
+# Command needed in druid.sh Line 140;
+RUN if [ ! -x "$(command -v ip)" ]; then \
+ apt update \
+ && apt install -y iproute2; \
+ fi;
+
USER druid
VOLUME /opt/druid/var
WORKDIR /opt/druid
diff --git a/distribution/pom.xml b/distribution/pom.xml
index ecc00a9155d2..cc035e21a3e2 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -303,8 +303,8 @@
- org.codehaus.mojo
- exec-maven-plugin
+ org.codehaus.mojo
+ exec-maven-plugin
generate-licenses-report
@@ -450,6 +450,11 @@
org.apache.druid.extensions.contrib:opentelemetry-emitter
-c
org.apache.druid.extensions:druid-iceberg-extensions
+ org.apache.druid.extensions.contrib:druid-opencensus-extensions
+ -c
+ io.confluent.druid.extensions:confluent-extensions
+ -c
+ org.apache.druid.extensions.contrib:opentelemetry-emitter
@@ -567,5 +572,212 @@
+
+
+ dist-used
+
+ false
+
+ tar
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+ generate-readme
+ initialize
+
+ exec
+
+
+ ${project.basedir}/bin/build-textfile-readme.sh
+
+ ${project.basedir}/../
+ ${project.parent.version}
+
+
+
+
+ generate-binary-license
+ initialize
+
+ exec
+
+
+ ${project.basedir}/bin/generate-binary-license.py
+
+ ${project.parent.basedir}/licenses/APACHE2
+ ${project.parent.basedir}/licenses.yaml
+ ${project.parent.basedir}/LICENSE.BINARY
+
+
+
+
+ generate-binary-notice
+ initialize
+
+ exec
+
+
+ ${project.basedir}/bin/generate-binary-notice.py
+
+ ${project.parent.basedir}/NOTICE
+ ${project.parent.basedir}/licenses.yaml
+ ${project.parent.basedir}/NOTICE.BINARY
+
+
+
+
+ pull-deps
+ package
+
+ exec
+
+
+ ${project.parent.basedir}/examples/bin/run-java
+
+ -classpath
+
+ -Ddruid.extensions.loadList=[]
+ -Ddruid.extensions.directory=${project.build.directory}/extensions
+
+
+ -Ddruid.extensions.hadoopDependenciesDir=${project.build.directory}/hadoop-dependencies
+
+ org.apache.druid.cli.Main
+ tools
+ pull-deps
+ --clean
+ --defaultVersion
+ ${project.parent.version}
+ -l
+ ${settings.localRepository}
+ -h
+ org.apache.hadoop:hadoop-client:${hadoop.compile.version}
+ -c
+ org.apache.druid.extensions:druid-datasketches
+ -c
+ org.apache.druid.extensions:druid-kafka-indexing-service
+ -c
+ org.apache.druid.extensions:druid-multi-stage-query
+ -c
+ org.apache.druid.extensions:druid-catalog
+ -c
+ org.apache.druid.extensions:druid-protobuf-extensions
+ -c
+ org.apache.druid.extensions:postgresql-metadata-storage
+ -c
+ org.apache.druid.extensions:druid-s3-extensions
+ -c
+ org.apache.druid.extensions:druid-aws-rds-extensions
+ -c
+ org.apache.druid.extensions:simple-client-sslcontext
+ -c
+ org.apache.druid.extensions:druid-basic-security
+ -c
+ org.apache.druid.extensions:druid-pac4j
+ -c
+ org.apache.druid.extensions:druid-kubernetes-extensions
+ --clean
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ distro-assembly
+ package
+
+ single
+
+
+ apache-druid-${project.parent.version}
+ posix
+
+ src/assembly/assembly.xml
+
+
+
+
+
+
+ org.codehaus.mojo
+ license-maven-plugin
+
+
+ download-licenses
+
+ download-licenses
+
+
+
+
+
+
+
+
+
+ bundle-contrib-exts-used
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+ pull-deps-contrib-exts
+ package
+
+ exec
+
+
+ ${project.parent.basedir}/examples/bin/run-java
+
+ -classpath
+
+ -Ddruid.extensions.loadList=[]
+ -Ddruid.extensions.directory=${project.build.directory}/extensions
+
+
+ -Ddruid.extensions.hadoopDependenciesDir=${project.build.directory}/hadoop-dependencies
+
+ org.apache.druid.cli.Main
+ tools
+ pull-deps
+ --defaultVersion
+ ${project.parent.version}
+ -l
+ ${settings.localRepository}
+ --no-default-hadoop
+ -c
+ org.apache.druid.extensions.contrib:kafka-emitter
+ -c
+ org.apache.druid.extensions.contrib:statsd-emitter
+ -c
+ org.apache.druid.extensions.contrib:prometheus-emitter
+ -c
+ org.apache.druid.extensions.contrib:opentelemetry-emitter
+ -c
+ org.apache.druid.extensions.contrib:druid-opencensus-extensions
+ -c
+ io.confluent.druid.extensions:confluent-extensions
+ -c
+ org.apache.druid.extensions.contrib:opentelemetry-emitter
+
+
+
+
+
+
+
+
diff --git a/docs/development/extensions-contrib/kafka-emitter.md b/docs/development/extensions-contrib/kafka-emitter.md
index 40b63ca73afd..eba138e004cd 100644
--- a/docs/development/extensions-contrib/kafka-emitter.md
+++ b/docs/development/extensions-contrib/kafka-emitter.md
@@ -23,7 +23,7 @@ title: "Kafka Emitter"
-->
-To use this Apache Druid extension, [include](../../configuration/extensions.md#loading-extensions) `kafka-emitter` in the extensions load list.
+To use this Apache Druid extension, [include](../../development/extensions.md#loading-extensions) `kafka-emitter` in the extensions load list.
## Introduction
@@ -44,6 +44,7 @@ All the configuration parameters for the Kafka emitter are under `druid.emitter.
| `druid.emitter.kafka.alert.topic` | Kafka topic name for emitter's target to emit alerts. If `event.types` contains `alerts`, this field cannot empty. | no | none |
| `druid.emitter.kafka.request.topic` | Kafka topic name for emitter's target to emit request logs. If `event.types` contains `requests`, this field cannot be empty. | no | none |
| `druid.emitter.kafka.segmentMetadata.topic` | Kafka topic name for emitter's target to emit segment metadata. If `event.types` contains `segment_metadata`, this field cannot be empty. | no | none |
+| `druid.emitter.kafka.segmentMetadata.topic.format` | Format in which segment related metadata will be emitted.
Choices: json, protobuf.
If set to `protobuf`, then segment metadata is emitted in `DruidSegmentEvent.proto` format | no | json |
| `druid.emitter.kafka.producer.config` | JSON configuration to set additional properties to Kafka producer. | no | none |
| `druid.emitter.kafka.clusterName` | Optional value to specify the name of your Druid cluster. It can help make groups in your monitoring environment. | no | none |
@@ -55,7 +56,8 @@ druid.emitter.kafka.event.types=["metrics", alerts", "requests", "segment_metada
druid.emitter.kafka.metric.topic=druid-metric
druid.emitter.kafka.alert.topic=druid-alert
druid.emitter.kafka.request.topic=druid-request-logs
-druid.emitter.kafka.segmentMetadata.topic=druid-segment-metadata
+druid.emitter.kafka.segmentMetadata.topic=druid-segment-metadata
+druid.emitter.kafka.segmentMetadata.topic.format=protobuf
druid.emitter.kafka.producer.config={"max.block.ms":10000}
```
-
+Whenever `druid.emitter.kafka.segmentMetadata.topic.format` field is updated, it is recommended to also update `druid.emitter.kafka.segmentMetadata.topic` to avoid the same topic from getting polluted with different formats of segment metadata.
diff --git a/extensions-contrib/confluent-extensions/pom.xml b/extensions-contrib/confluent-extensions/pom.xml
new file mode 100644
index 000000000000..ed012b79e629
--- /dev/null
+++ b/extensions-contrib/confluent-extensions/pom.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+ 4.0.0
+
+ io.confluent.druid.extensions
+ confluent-extensions
+ confluent-extensions
+ confluent-extensions
+
+
+ druid
+ org.apache.druid
+ 28.0.0-SNAPSHOT
+ ../../pom.xml
+
+
+
+
+ org.apache.druid
+ druid-processing
+ ${project.parent.version}
+ provided
+
+
+ com.google.code.findbugs
+ jsr305
+ provided
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ provided
+
+
+ com.google.guava
+ guava
+ provided
+
+
+ com.google.inject
+ guice
+ provided
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ provided
+
+
+
+ junit
+ junit
+ test
+
+
+ org.apache.druid
+ druid-processing
+ ${project.parent.version}
+ test
+ test-jar
+
+
+ org.apache.druid
+ druid-processing
+ 28.0.0-SNAPSHOT
+ compile
+
+
+
diff --git a/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/ConfluentExtensionsModule.java b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/ConfluentExtensionsModule.java
new file mode 100644
index 000000000000..a2a835a10cde
--- /dev/null
+++ b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/ConfluentExtensionsModule.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2020 Confluent Inc.
+ */
+
+package io.confluent.druid;
+
+import com.fasterxml.jackson.databind.Module;
+import com.fasterxml.jackson.databind.jsontype.NamedType;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.google.inject.Binder;
+import io.confluent.druid.transform.ExtractTenantTopicTransform;
+import io.confluent.druid.transform.ExtractTenantTransform;
+import org.apache.druid.initialization.DruidModule;
+
+import java.util.Collections;
+import java.util.List;
+
+public class ConfluentExtensionsModule implements DruidModule
+{
+ @Override
+ public List extends Module> getJacksonModules()
+ {
+ return Collections.singletonList(
+ new SimpleModule("ConfluentTransformsModule")
+ .registerSubtypes(
+ new NamedType(ExtractTenantTransform.class, "extractTenant"),
+ new NamedType(ExtractTenantTopicTransform.class, "extractTenantTopic")
+ )
+ );
+ }
+
+ @Override
+ public void configure(Binder binder)
+ {
+ }
+}
diff --git a/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/ExtractTenantTopicTransform.java b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/ExtractTenantTopicTransform.java
new file mode 100644
index 000000000000..ef4b78b0f753
--- /dev/null
+++ b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/ExtractTenantTopicTransform.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2020 Confluent Inc.
+ */
+
+package io.confluent.druid.transform;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
+import org.apache.druid.data.input.Row;
+import org.apache.druid.segment.transform.RowFunction;
+import org.apache.druid.segment.transform.Transform;
+
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
+
+public class ExtractTenantTopicTransform implements Transform
+{
+ private final String fieldName;
+ private final String name;
+
+ public ExtractTenantTopicTransform(
+ @JsonProperty("name") final String name,
+ @JsonProperty("fieldName") final String fieldName
+ )
+ {
+ this.name = Preconditions.checkNotNull(name, "name");
+ this.fieldName = Preconditions.checkNotNull(fieldName, "fieldName");
+ }
+
+ @JsonProperty
+ @Override
+ public String getName()
+ {
+ return name;
+ }
+
+ @JsonProperty
+ public String getFieldName()
+ {
+ return fieldName;
+ }
+
+ @Override
+ public RowFunction getRowFunction()
+ {
+ return new RowFunction()
+ {
+ @Override
+ public Object eval(Row row)
+ {
+ Object existing = row.getRaw(name);
+ // do not overwrite existing values if present
+ if (existing != null) {
+ return existing;
+ }
+
+ Object value = row.getRaw(fieldName);
+ return value == null ? null : TenantUtils.extractTenantTopic(value.toString());
+ }
+ };
+ }
+
+ @Override
+ public Set getRequiredColumns()
+ {
+ Set columns = new HashSet();
+ columns.add(this.name);
+ columns.add(this.fieldName);
+ return columns;
+ }
+
+ @Override
+ public boolean equals(Object o)
+ {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ExtractTenantTopicTransform)) {
+ return false;
+ }
+ ExtractTenantTopicTransform that = (ExtractTenantTopicTransform) o;
+ return fieldName.equals(that.fieldName) &&
+ name.equals(that.name);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return Objects.hash(fieldName, name);
+ }
+
+ @Override
+ public String toString()
+ {
+ return "ExtractTenantTopicTransform{" +
+ "fieldName='" + fieldName + '\'' +
+ ", name='" + name + '\'' +
+ '}';
+ }
+}
diff --git a/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/ExtractTenantTransform.java b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/ExtractTenantTransform.java
new file mode 100644
index 000000000000..4b6ad09d6400
--- /dev/null
+++ b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/ExtractTenantTransform.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2020 Confluent Inc.
+ */
+
+package io.confluent.druid.transform;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Preconditions;
+import org.apache.druid.segment.transform.RowFunction;
+import org.apache.druid.segment.transform.Transform;
+
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
+
+public class ExtractTenantTransform implements Transform
+{
+ private final String fieldName;
+ private final String name;
+
+ public ExtractTenantTransform(
+ @JsonProperty("name") final String name,
+ @JsonProperty("fieldName") final String fieldName
+ )
+ {
+ this.name = Preconditions.checkNotNull(name, "name");
+ this.fieldName = Preconditions.checkNotNull(fieldName, "fieldName");
+ }
+
+ @JsonProperty
+ @Override
+ public String getName()
+ {
+ return name;
+ }
+
+ @JsonProperty
+ public String getFieldName()
+ {
+ return fieldName;
+ }
+
+ @Override
+ public RowFunction getRowFunction()
+ {
+ return row -> {
+ Object existing = row.getRaw(name);
+ // do not overwrite existing values if present
+ if (existing != null) {
+ return existing;
+ }
+
+ Object value = row.getRaw(fieldName);
+ return value == null ? null : TenantUtils.extractTenant(value.toString());
+ };
+ }
+
+ @Override
+ public Set getRequiredColumns()
+ {
+ Set columns = new HashSet();
+ columns.add(this.name);
+ columns.add(this.fieldName);
+ return columns;
+ }
+
+ @Override
+ public boolean equals(Object o)
+ {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ExtractTenantTransform)) {
+ return false;
+ }
+ ExtractTenantTransform that = (ExtractTenantTransform) o;
+ return fieldName.equals(that.fieldName) &&
+ name.equals(that.name);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return Objects.hash(fieldName, name);
+ }
+
+ @Override
+ public String toString()
+ {
+ return "ExtractTenantTransform{" +
+ "fieldName='" + fieldName + '\'' +
+ ", name='" + name + '\'' +
+ '}';
+ }
+}
diff --git a/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/TenantUtils.java b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/TenantUtils.java
new file mode 100644
index 000000000000..1a4e8c66df24
--- /dev/null
+++ b/extensions-contrib/confluent-extensions/src/main/java/io/confluent/druid/transform/TenantUtils.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2020 Confluent Inc.
+ */
+
+package io.confluent.druid.transform;
+
+import javax.annotation.Nullable;
+
+public class TenantUtils
+{
+ private static final char DELIMITER = '_';
+
+ @Nullable
+ public static String extractTenant(String prefixedTopic)
+ {
+ int i = prefixedTopic.indexOf(DELIMITER);
+ return i > 0 ? prefixedTopic.substring(0, i) : null;
+ }
+
+ @Nullable
+ public static String extractTenantTopic(String prefixedTopic)
+ {
+ int i = prefixedTopic.indexOf(DELIMITER);
+ return i > 0 ? prefixedTopic.substring(i + 1) : null;
+ }
+}
diff --git a/extensions-contrib/confluent-extensions/src/main/resources/META-INF/services/org.apache.druid.initialization.DruidModule b/extensions-contrib/confluent-extensions/src/main/resources/META-INF/services/org.apache.druid.initialization.DruidModule
new file mode 100644
index 000000000000..f14e0fe0915b
--- /dev/null
+++ b/extensions-contrib/confluent-extensions/src/main/resources/META-INF/services/org.apache.druid.initialization.DruidModule
@@ -0,0 +1,3 @@
+# Copyright 2020 Confluent Inc.
+
+io.confluent.druid.ConfluentExtensionsModule
diff --git a/extensions-contrib/confluent-extensions/src/test/java/io/confluent/druid/transform/ExtractTransformTest.java b/extensions-contrib/confluent-extensions/src/test/java/io/confluent/druid/transform/ExtractTransformTest.java
new file mode 100644
index 000000000000..2ca5390e76b9
--- /dev/null
+++ b/extensions-contrib/confluent-extensions/src/test/java/io/confluent/druid/transform/ExtractTransformTest.java
@@ -0,0 +1,161 @@
+/*
+ * Copyright 2020 Confluent Inc.
+ */
+
+package io.confluent.druid.transform;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import io.confluent.druid.ConfluentExtensionsModule;
+import org.apache.druid.data.input.InputRow;
+import org.apache.druid.data.input.impl.DimensionsSpec;
+import org.apache.druid.data.input.impl.InputRowParser;
+import org.apache.druid.data.input.impl.MapInputRowParser;
+import org.apache.druid.data.input.impl.TimeAndDimsParseSpec;
+import org.apache.druid.data.input.impl.TimestampSpec;
+import org.apache.druid.java.util.common.DateTimes;
+import org.apache.druid.segment.TestHelper;
+import org.apache.druid.segment.transform.TransformSpec;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Map;
+
+public class ExtractTransformTest
+{
+
+ private static final MapInputRowParser PARSER = new MapInputRowParser(
+ new TimeAndDimsParseSpec(
+ new TimestampSpec("t", "auto", DateTimes.of("2020-01-01")),
+ new DimensionsSpec(DimensionsSpec.getDefaultSchemas(ImmutableList.of("topic", "tenant")))
+ )
+ );
+
+ private static final Map ROW1 = ImmutableMap.builder()
+ .put("topic", "lkc-abc123_mytopic")
+ .build();
+
+ private static final Map ROW2 = ImmutableMap.builder()
+ .put("tenant", "lkc-xyz789")
+ .put("tenant_topic", "topic0")
+ .put("topic", "lkc-abc123_mytopic")
+ .build();
+
+ private static final Map ROW3 = ImmutableMap.builder()
+ .put("topic", "invalid-topic")
+ .build();
+
+ private static final Map ROW4 = ImmutableMap.builder()
+ .build();
+
+
+ @Test
+ public void testExtraction()
+ {
+ final TransformSpec transformSpec = new TransformSpec(
+ null,
+ ImmutableList.of(
+ new ExtractTenantTransform("tenant", "topic"),
+ new ExtractTenantTopicTransform("tenant_topic", "topic")
+ )
+ );
+
+ final InputRowParser