Skip to content

Commit e0ee577

Browse files
authored
Merge pull request #493 from jmtd/CSB-3783-ubi8
[OPENJDK-3009] mask passwords from java arguments in logs (UBI8)
2 parents d9f6211 + 04f93d0 commit e0ee577

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

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

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,26 @@ function configure_passwd() {
225225
if [ -w "$HOME/passwd" ]; then
226226
sed "/^jboss/s/[^:]*/$(id -u)/3" /etc/passwd > "$HOME/passwd"
227227
fi
228+
229+
# Mask secrets before printing
230+
mask_passwords() {
231+
local content="$1"
232+
local result=""
233+
234+
IFS=' ' read -r -a key_value_pairs <<< "$content"
235+
236+
for pair in "${key_value_pairs[@]}"; do
237+
key=$(echo "$pair" | cut -d '=' -f 1)
238+
value=$(echo "$pair" | cut -d '=' -f 2-)
239+
240+
if [[ $key =~ [Pp][Aa][Ss][Ss][Ww][Oo][Rr][Dd] ]]; then
241+
result+="$key=***** "
242+
else
243+
result+="$pair "
244+
fi
245+
done
246+
247+
echo "${result% }"
228248
}
229249

230250
# Start JVM
@@ -242,9 +262,11 @@ startup() {
242262
args="-jar ${JAVA_APP_JAR}"
243263
fi
244264

245-
procname="${JAVA_APP_NAME-java}"
265+
local procname="${JAVA_APP_NAME-java}"
266+
267+
local masked_opts=$(mask_passwords "$(get_java_options)")
246268

247-
log_info "exec -a \"${procname}\" java $(get_java_options) -cp \"$(get_classpath)\" ${args} $*"
269+
log_info "exec -a \"${procname}\" java ${masked_opts} -cp \"$(get_classpath)\" ${args} $*"
248270
log_info "running in $PWD"
249271
exec -a "${procname}" java $(get_java_options) -cp "$(get_classpath)" ${args} $*
250272
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@ubi8
2+
Feature: OpenJDK run script tests
3+
Scenario: OPENJDK-3009: 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)