|
39 | 39 | import java.util.HashSet; |
40 | 40 | import java.util.Iterator; |
41 | 41 | import java.util.List; |
| 42 | +import java.util.Arrays; |
42 | 43 | import java.util.Map; |
43 | 44 | import java.util.Set; |
44 | 45 | import java.util.TimeZone; |
@@ -610,10 +611,27 @@ public String handleRequest(final Map params, final String responseType, final S |
610 | 611 | logger.error("invalid request, no command sent"); |
611 | 612 | if (logger.isTraceEnabled()) { |
612 | 613 | logger.trace("dumping request parameters"); |
613 | | - for (final Object key : params.keySet()) { |
614 | | - final String keyStr = (String)key; |
615 | | - final String[] value = (String[])params.get(key); |
616 | | - logger.trace(" key: " + keyStr + ", value: " + ((value == null) ? "'null'" : value[0])); |
| 614 | + Set<String> sensitiveFields = new HashSet<>(Arrays.asList( |
| 615 | + "password", "secretkey", "apikey", "token", |
| 616 | + "sessionkey", "accesskey", "signature", |
| 617 | + "authorization", "credential", "secret" |
| 618 | + )); |
| 619 | + |
| 620 | + for (final Object key : params.keySet()) { |
| 621 | + final String keyStr = (String) key; |
| 622 | + final String[] value = (String[]) params.get(key); |
| 623 | + |
| 624 | + boolean isSensitive = sensitiveFields.stream() |
| 625 | + .anyMatch(field -> keyStr.toLowerCase().contains(field)); |
| 626 | + |
| 627 | + String logValue; |
| 628 | + if (isSensitive) { |
| 629 | + logValue = "******"; // mask sensitive values |
| 630 | + } else { |
| 631 | + logValue = (value == null) ? "'null'" : value[0]; |
| 632 | + } |
| 633 | + |
| 634 | + logger.trace(" key: " + keyStr + ", value: " + logValue); |
617 | 635 | } |
618 | 636 | } |
619 | 637 | throw new ServerApiException(ApiErrorCode.UNSUPPORTED_ACTION_ERROR, "Invalid request, no command sent"); |
|
0 commit comments