[SO] Fix SQL DB user creation when password contains special chars 15/111715/7
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Tue, 25 Aug 2020 20:50:12 +0000 (22:50 +0200)
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>
Fri, 16 Oct 2020 07:35:15 +0000 (07:35 +0000)
SO uses custom scripts to create DBs and users.
Those scripts were not escaping properly special characters that may
appear in our auto-generated passwords.

Fix this issue by adding special characters escaping to those scripts.

Issue-ID: OOM-2328
Reported-by: Marat Salakhutdinov <marat.salakhutdinov@bell.ca>
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Change-Id: Ifce3265df154a510606e0a082c7041536e2ec303

kubernetes/so/components/so-mariadb/resources/config/docker-entrypoint-initdb.d/98-create-so-user.sh
kubernetes/so/components/so-mariadb/resources/config/docker-entrypoint-initdb.d/99-create-so-admin.sh

index a8f772b..05b1ff7 100755 (executable)
 
 echo "Creating so user . . ." 1>/tmp/mariadb-so-user.log 2>&1
 
+prepare_password()
+{
+       echo "$1" | sed -e "s/'/\\\\'/g; s/\"/\\\\\"/g"
+}
+
+DB_PASSWORD=`prepare_password $DB_PASSWORD`
+
 mysql -uroot -p$MYSQL_ROOT_PASSWORD << EOF || exit 1
 DROP USER IF EXISTS '${DB_USER}';
 CREATE USER '${DB_USER}';
index adb28fe..593739e 100755 (executable)
 
 echo "Creating so admin user . . ." 1>/tmp/mariadb-so-admin.log 2>&1
 
+prepare_password()
+{
+       echo "$1" | sed -e "s/'/\\\\'/g; s/\"/\\\\\"/g"
+}
+
+DB_ADMIN_PASSWORD=`prepare_password $DB_ADMIN_PASSWORD`
+
 mysql -uroot -p$MYSQL_ROOT_PASSWORD << EOF || exit 1
 DROP USER IF EXISTS '${DB_ADMIN}';
 CREATE USER '${DB_ADMIN}';