You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by sm...@apache.org on 2026/03/27 08:28:02 UTC

(knox) branch master updated: KNOX-3288: Support for gateway database aliases in Docker entrypoint script (#1187)

This is an automated email from the ASF dual-hosted git repository.

smolnar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 7c094442d KNOX-3288: Support for gateway database aliases in Docker entrypoint script (#1187)
7c094442d is described below

commit 7c094442d270484a0f60a9f5d29578e6426668eb
Author: Sandor Molnar <sm...@apache.org>
AuthorDate: Fri Mar 27 09:27:56 2026 +0100

    KNOX-3288: Support for gateway database aliases in Docker entrypoint script (#1187)
---
 .../main/resources/docker/gateway-entrypoint.sh    | 47 +++++++++++++++-------
 1 file changed, 32 insertions(+), 15 deletions(-)

diff --git a/gateway-docker/src/main/resources/docker/gateway-entrypoint.sh b/gateway-docker/src/main/resources/docker/gateway-entrypoint.sh
index 58981f9ad..78f5ad1e7 100755
--- a/gateway-docker/src/main/resources/docker/gateway-entrypoint.sh
+++ b/gateway-docker/src/main/resources/docker/gateway-entrypoint.sh
@@ -26,6 +26,9 @@
 # - KEYSTORE_DIR - (optional) a location for generated JKS files, default /home/knox/knox/data/security/keystores
 # - LDAP_PASSWORD_FILE - (optional) the location of a file containing ldap bind password.
 # - LDAP_BIND_PASSWORD - (optional) ldap bind password value (not file location).
+# - DATABASE_CONNECTION_USER - (optional) gateway database user
+# - DATABASE_CONNECTION_PASSWORD - (optional) gateway database password
+# - DATABASE_CONNECTION_TRUSTSTORE_PASSWORD - (optional) gateway database ssl truststore password
 # - CUSTOM_CERT - (optional) the location of a file containing the custom certs
 
 
@@ -43,7 +46,7 @@ importMultipleCerts() {
   # awk command:
   # step 1), if line is in the desired cert, print the line
   # step 2), increment counter when last line of cert is found
-  for N in $(/usr/bin/seq 0 $(($CERTS - 1))); do
+  for N in $(/usr/bin/seq 0 $((CERTS - 1))); do
     ALIAS="${FILE%.*}-$N"
     /bin/cat "$FILE" |
       /usr/bin/awk "n==$N { print }; /END CERTIFICATE/ { n++ }" |
@@ -56,6 +59,22 @@ importMultipleCerts() {
   done
 }
 
+## Helper function to save an alias
+## Function takes alias name, environment variable value, and optional default value
+saveAlias() {
+  local alias_name=$1
+  local env_var_value=$2
+  local default_value=$3
+
+  if [[ -n ${env_var_value} ]]; then
+    echo "Creating alias ${alias_name} using provided value..."
+    /home/knox/knox/bin/knoxcli.sh create-alias "${alias_name}" --value "${env_var_value}"
+  elif [[ -n ${default_value} ]]; then
+    echo "Creating alias ${alias_name} using default value..."
+    /home/knox/knox/bin/knoxcli.sh create-alias "${alias_name}" --value "${default_value}"
+  fi
+}
+
 export GATEWAY_SERVER_RUN_IN_FOREGROUND=true
 
 
@@ -78,16 +97,14 @@ then
   LDAP_BIND_PASSWORD=$(/bin/cat "${LDAP_PASSWORD_FILE}" 2>/dev/null)
 fi
 
-if [[ -n ${LDAP_BIND_PASSWORD} ]]
-then
-  echo "Using provided LDAP bind password"
-  /home/knox/knox/bin/knoxcli.sh create-alias ldap-bind-password --value "${LDAP_BIND_PASSWORD}"
-fi
+saveAlias ldap-bind-password "${LDAP_BIND_PASSWORD}"
+saveAlias gateway_database_user "${DATABASE_CONNECTION_USER}"
+saveAlias gateway_database_password "${DATABASE_CONNECTION_PASSWORD}"
+saveAlias gateway_database_ssl_truststore_password "${DATABASE_CONNECTION_TRUSTSTORE_PASSWORD}"
 
 if [[ -n ${KNOX_TOKEN_HASH_KEY} ]]
 then
-  echo "Creating knox.token.hash.key alias using the provided secret (via ENV variable)..."
-  /home/knox/knox/bin/knoxcli.sh create-alias knox.token.hash.key --value "${KNOX_TOKEN_HASH_KEY}"
+  saveAlias knox.token.hash.key "${KNOX_TOKEN_HASH_KEY}"
 else
   echo "Generating knox.token.hash.key alias ..."
   /home/knox/knox/bin/knoxcli.sh generate-jwk --saveAlias knox.token.hash.key
@@ -130,8 +147,8 @@ if [[ -n ${ALIAS_PASSPHRASE} ]] && [[ -n ${KNOX_CERT_EXIST} ]] && [[ -n ${KNOX_K
 then
   echo "Using provided key to setup Knox keystore"
   # Create JCEKS aliases for Knox
-  /home/knox/knox/bin/knoxcli.sh create-alias signing.keystore.password --value "${ALIAS_PASSPHRASE}"
-  /home/knox/knox/bin/knoxcli.sh create-alias gateway-identity-keystore-password --value "${ALIAS_PASSPHRASE}"
+  saveAlias signing.keystore.password "${ALIAS_PASSPHRASE}"
+  saveAlias gateway-identity-keystore-password "${ALIAS_PASSPHRASE}"
 
   /usr/bin/openssl pkcs12 -export \
     -in "${KNOX_CERT}" \
@@ -169,7 +186,7 @@ fi
 
 # Add Amazon Root CA 1
 /usr/bin/keytool -importcert \
-  -keystore ${KEYSTORE_DIR}/truststore.jks \
+  -keystore "${KEYSTORE_DIR}"/truststore.jks \
   -alias amazon-ca-1 \
   -file /home/knox/cacrts/AmazonRootCA1.cer \
   -storepass "${ALIAS_PASSPHRASE}" \
@@ -177,7 +194,7 @@ fi
 
 # Add Amazon Root CA 2
 /usr/bin/keytool -importcert \
-  -keystore ${KEYSTORE_DIR}/truststore.jks \
+  -keystore "${KEYSTORE_DIR}"/truststore.jks \
   -alias amazon-ca-2 \
   -file /home/knox/cacrts/AmazonRootCA2.cer \
   -storepass "${ALIAS_PASSPHRASE}" \
@@ -185,7 +202,7 @@ fi
 
 # Add Amazon Root CA 3
 /usr/bin/keytool -importcert \
-  -keystore ${KEYSTORE_DIR}/truststore.jks \
+  -keystore "${KEYSTORE_DIR}"/truststore.jks \
   -alias amazon-ca-3 \
   -file /home/knox/cacrts/AmazonRootCA3.cer \
   -storepass "${ALIAS_PASSPHRASE}" \
@@ -193,7 +210,7 @@ fi
 
 # Add Amazon Root CA 4
 /usr/bin/keytool -importcert \
-  -keystore ${KEYSTORE_DIR}/truststore.jks \
+  -keystore "${KEYSTORE_DIR}"/truststore.jks \
   -alias amazon-ca-4 \
   -file /home/knox/cacrts/AmazonRootCA4.cer \
   -storepass "${ALIAS_PASSPHRASE}" \
@@ -201,7 +218,7 @@ fi
 
 # Add letsencrypt staging root CA
 /usr/bin/keytool -importcert \
-  -keystore ${KEYSTORE_DIR}/truststore.jks \
+  -keystore "${KEYSTORE_DIR}"/truststore.jks \
   -alias letsencrypt-stg-root \
   -file /home/knox/cacrts/letsencrypt-stg-root-x1.pem \
   -storepass "${ALIAS_PASSPHRASE}" \