Skip to content

Commit 53ff841

Browse files
authored
Merge pull request #466 from ammachado/CSB-3783
[OPENJDK-2833] Possible fix for OpenJDK image should scrub passwords from logs
2 parents af88a09 + 195a93c commit 53ff841

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

modules/run/artifacts/opt/jboss/container/java/run/run-java.sh

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,27 @@ get_classpath() {
202202
echo "${cp_path}"
203203
}
204204

205+
# Mask secrets before printing
206+
mask_passwords() {
207+
local content="$1"
208+
local result=""
209+
210+
IFS=' ' read -r -a key_value_pairs <<< "$content"
211+
212+
for pair in "${key_value_pairs[@]}"; do
213+
key=$(echo "$pair" | cut -d '=' -f 1)
214+
value=$(echo "$pair" | cut -d '=' -f 2-)
215+
216+
if [[ $key =~ [Pp][Aa][Ss][Ss][Ww][Oo][Rr][Dd] ]]; then
217+
result+="$key=***** "
218+
else
219+
result+="$pair "
220+
fi
221+
done
222+
223+
echo "${result% }"
224+
}
225+
205226
# Start JVM
206227
startup() {
207228
# Initialize environment
@@ -215,9 +236,11 @@ startup() {
215236
args="-jar ${JAVA_APP_JAR}"
216237
fi
217238

218-
procname="${JAVA_APP_NAME-java}"
239+
local procname="${JAVA_APP_NAME-java}"
240+
241+
local masked_opts=$(mask_passwords "$(get_java_options)")
219242

220-
log_info "exec -a \"${procname}\" java $(get_java_options) -cp \"$(get_classpath)\" ${args} $*"
243+
log_info "exec -a \"${procname}\" java ${masked_opts} -cp \"$(get_classpath)\" ${args} $*"
221244
log_info "running in $PWD"
222245
exec -a "${procname}" java $(get_java_options) -cp "$(get_classpath)" ${args} $*
223246
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@ubi9
2+
Feature: OpenJDK run script tests
3+
Scenario: Ensure command-line options containing 'password' are masked in logs
4+
Given container is started with env
5+
| variable | value |
6+
| JAVA_OPTS_APPEND | -Djavax.net.ssl.trustStorePassword=sensitiveString |
7+
Then container log should not contain sensitiveString
8+

0 commit comments

Comments
 (0)