This commit is contained in:
Colin P. McCabe 2023-05-04 11:16:13 -07:00
parent f8445e0865
commit 0aca8efbc3
2 changed files with 20 additions and 4 deletions

View File

@ -23,6 +23,8 @@ import org.apache.kafka.common.metadata.UserScramCredentialRecord;
import org.apache.kafka.common.protocol.ApiMessage; import org.apache.kafka.common.protocol.ApiMessage;
import org.apache.kafka.metadata.KafkaConfigSchema; import org.apache.kafka.metadata.KafkaConfigSchema;
import java.util.Arrays;
/** /**
* Converts a metadata record to a string suitable for logging to slf4j. * Converts a metadata record to a string suitable for logging to slf4j.
@ -49,10 +51,11 @@ public final class RecordRedactor {
case USER_SCRAM_CREDENTIAL_RECORD: { case USER_SCRAM_CREDENTIAL_RECORD: {
UserScramCredentialRecord record = (UserScramCredentialRecord) message; UserScramCredentialRecord record = (UserScramCredentialRecord) message;
return "UserScramCredentialRecord(" return "UserScramCredentialRecord("
+ "name=" + record.name() + "name=" + ((record.name() == null) ? "null" : "'" + record.name().toString() + "'")
+ ", mechanism=" + record.mechanism() + ", mechanism=" + record.mechanism()
+ ", salt=(redacted)" + ", salt=(redacted)"
+ ", saltedPassword=(redacted)" + ", storedKey=(redacted)"
+ ", serverKey=(redacted)"
+ ", iterations=" + record.iterations() + ", iterations=" + record.iterations()
+ ")"; + ")";
} }

View File

@ -57,8 +57,8 @@ final public class RecordRedactorTest {
@Test @Test
public void testUserScramCredentialRecordToString() { public void testUserScramCredentialRecordToString() {
assertEquals("UserScramCredentialRecord(name=bob, mechanism=0, " + assertEquals("UserScramCredentialRecord(name='bob', mechanism=0, " +
"salt=(redacted), serverKey=(redacted), storedKey=(redacted), iterations=128)", "salt=(redacted), storedKey=(redacted), serverKey=(redacted), iterations=128)",
REDACTOR.toLoggableString(new UserScramCredentialRecord(). REDACTOR.toLoggableString(new UserScramCredentialRecord().
setName("bob"). setName("bob").
setMechanism((byte) 0). setMechanism((byte) 0).
@ -68,6 +68,19 @@ final public class RecordRedactorTest {
setIterations(128))); setIterations(128)));
} }
@Test
public void testUserScramCredentialRecordToStringWithNullName() {
assertEquals("UserScramCredentialRecord(name=null, mechanism=1, " +
"salt=(redacted), storedKey=(redacted), serverKey=(redacted), iterations=256)",
REDACTOR.toLoggableString(new UserScramCredentialRecord().
setName(null).
setMechanism((byte) 1).
setSalt(new byte[512]).
setServerKey(new byte[128]).
setStoredKey(new byte[128]).
setIterations(256)));
}
@Test @Test
public void testSensitiveConfigRecordToString() { public void testSensitiveConfigRecordToString() {
assertEquals("ConfigRecord(resourceType=4, resourceName='0', name='quux', " + assertEquals("ConfigRecord(resourceType=4, resourceName='0', name='quux', " +