Class CommaDelimitedStringListLogFieldSyntax
java.lang.Object
com.unboundid.ldap.sdk.unboundidds.logs.v2.syntax.LogFieldSyntax<Collection<? extends CharSequence>>
com.unboundid.ldap.sdk.unboundidds.logs.v2.syntax.CommaDelimitedStringListLogFieldSyntax
@ThreadSafety(level=COMPLETELY_THREADSAFE)
public final class CommaDelimitedStringListLogFieldSyntax
extends LogFieldSyntax<Collection<? extends CharSequence>>
This class defines a log field syntax for values that are a comma-delimited
list of strings. This syntax does support redacting and tokenizing the
individual items in the list.
NOTE: This class, and other classes within the
com.unboundid.ldap.sdk.unboundidds package structure, are only
supported for use against Ping Identity, UnboundID, and
Nokia/Alcatel-Lucent 8661 server products. These classes provide support
for proprietary functionality or for external specifications that are not
considered stable or mature enough to be guaranteed to work in an
interoperable way with other types of LDAP servers.
-
Field Summary
FieldsFields inherited from class com.unboundid.ldap.sdk.unboundidds.logs.v2.syntax.LogFieldSyntax
CARRIAGE_RETURN_CODE_POINT, DOUBLE_QUOTE_CODE_POINT, NEWLINE_CODE_POINT, OCTOTHORPE_CODE_POINT, REDACTED_STRING, TAB_CODE_POINT, TOKEN_PREFIX_STRING, TOKEN_SUFFIX_STRING -
Constructor Summary
ConstructorsConstructorDescriptionCommaDelimitedStringListLogFieldSyntax(int maxStringLengthCharacters) Creates a new instance of this log field syntax implementation. -
Method Summary
Modifier and TypeMethodDescriptionbooleanIndicates whether values that have been completely redacted still conform to this syntax.booleanIndicates whether values that have been completely tokenized still conform to this syntax.Retrieves the name for this syntax.voidlogCompletelyRedactedFieldToJSONFormattedLog(String fieldName, JSONBuffer buffer) Appends a completely redacted representation of the specified field (both field name and value) for a JSON-formatted log message to the given buffer.voidlogCompletelyRedactedFieldToTextFormattedLog(String fieldName, ByteStringBuffer buffer) Appends a completely redacted representation of the specified field (both field name and value) for a text-formatted log message to the given buffer.voidAppends a completely redacted representation of a value (without a field name, as might be suitable for a value included in a JSON array) for a JSON-formatted log message to the given buffer.voidlogCompletelyTokenizedFieldToJSONFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, byte[] pepper, JSONBuffer buffer) Appends a completely tokenized representation of the specified field (both field name and value) for a JSON-formatted log message to the given buffer.voidlogCompletelyTokenizedFieldToTextFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, byte[] pepper, ByteStringBuffer buffer) Appends a completely tokenized representation of the specified field (both field name and value) for a text-formatted log message to the given buffer.voidlogCompletelyTokenizedValueToJSONFormattedLog(Collection<? extends CharSequence> value, byte[] pepper, JSONBuffer buffer) Appends a completely tokenized representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) for a JSON-formatted log message to the given buffer.voidlogRedactedComponentsFieldToJSONFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, JSONBuffer buffer) Appends a representation of the specified field (both field name and value) with redacted value components for a JSON-formatted log message to the given buffer.voidlogRedactedComponentsFieldToTextFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, ByteStringBuffer buffer) Appends a representation of the specified field (both field name and value) with redacted value components for a text-formatted log message to the given buffer.voidlogRedactedComponentsValueToJSONFormattedLog(Collection<? extends CharSequence> value, JSONBuffer buffer) Appends a representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) with redacted components for a JSON-formatted log message to the given buffer.voidlogSanitizedFieldToJSONFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, JSONBuffer buffer) Appends a sanitized representation of the specified field (both field name and value) for a JSON-formatted log message to the given buffer.voidlogSanitizedFieldToTextFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, ByteStringBuffer buffer) Appends a sanitized representation of the specified field (both field name and value) for a text-formatted log message to the given buffer.voidlogSanitizedValueToJSONFormattedLog(Collection<? extends CharSequence> value, JSONBuffer buffer) Appends a sanitized representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) for a JSON-formatted log message to the given buffer.voidlogTokenizedComponentsFieldToJSONFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, byte[] pepper, JSONBuffer buffer) Appends a representation of the specified field (both field name and value) with tokenized value components for a JSON-formatted log message to the given buffer.voidlogTokenizedComponentsFieldToTextFormattedLog(String fieldName, Collection<? extends CharSequence> fieldValue, byte[] pepper, ByteStringBuffer buffer) Appends a representation of the specified field (both field name and value) with tokenized value components for a text-formatted log message to the given buffer.voidlogTokenizedComponentsValueToJSONFormattedLog(Collection<? extends CharSequence> value, byte[] pepper, JSONBuffer buffer) Appends a representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) with tokenized value components for a JSON-formatted log message to the given buffer.parseValue(String valueString) Attempts to parse the provided string as a value in accordance with this syntax.voidredactComponents(Collection<? extends CharSequence> value, ByteStringBuffer buffer) Appends a string representation of the given value with redacted components to the provided buffer.booleanIndicates whether this syntax supports redacting individual components of the entire value.booleanIndicates whether this syntax supports tokenizing individual components of the entire value.voidtokenizeComponents(Collection<? extends CharSequence> value, byte[] pepper, ByteStringBuffer buffer) Appends a string representation of the given value with zero or more of its components tokenized to the provided buffer.voidtokenizeEntireValue(Collection<? extends CharSequence> value, byte[] pepper, ByteStringBuffer buffer) Appends a tokenized representation of the provided value to the given buffer.voidvalueToSanitizedString(Collection<? extends CharSequence> value, ByteStringBuffer buffer) Encodes the provided value to a sanitized string representation suitable for inclusion in a log message.booleanIndicates whether values with one or more redacted components still conform to this syntax.booleanIndicates whether values with one or more tokenized components still conform to this syntax.Methods inherited from class com.unboundid.ldap.sdk.unboundidds.logs.v2.syntax.LogFieldSyntax
getMaxStringLengthCharacters, getTemporaryBuffer, redactComponents, redactEntireValue, redactEntireValue, releaseTemporaryBuffer, sanitize, sanitize, sha256, tokenize, tokenize, tokenize, tokenizeComponents, tokenizeEntireValue, valueStringIncludesRedactedComponent, valueStringIncludesTokenizedComponent, valueStringIsCompletelyRedacted, valueStringIsCompletelyTokenized, valueToSanitizedString
-
Field Details
-
SYNTAX_NAME
The name for this syntax.- See Also:
-
-
Constructor Details
-
CommaDelimitedStringListLogFieldSyntax
Creates a new instance of this log field syntax implementation.- Parameters:
maxStringLengthCharacters- The maximum length (in characters) to use for strings within values. Strings that are longer than this should be truncated before inclusion in the log. This value must be greater than or equal to zero.
-
-
Method Details
-
getSyntaxName
Retrieves the name for this syntax.- Specified by:
getSyntaxNamein classLogFieldSyntax<Collection<? extends CharSequence>>- Returns:
- The name for this syntax.
-
valueToSanitizedString
public void valueToSanitizedString(@NotNull Collection<? extends CharSequence> value, @NotNull ByteStringBuffer buffer) Encodes the provided value to a sanitized string representation suitable for inclusion in a log message. The sanitized string should at least be cleaned of control characters and other non-printable characters, but depending on the syntax, it may clean other characters as well.- Specified by:
valueToSanitizedStringin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value to be encoded. It must not benull.buffer- The buffer to which the string representation should be appended. It must not benull.
-
logSanitizedFieldToTextFormattedLog
public void logSanitizedFieldToTextFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull ByteStringBuffer buffer) Appends a sanitized representation of the specified field (both field name and value) for a text-formatted log message to the given buffer.- Specified by:
logSanitizedFieldToTextFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logSanitizedFieldToJSONFormattedLog
public void logSanitizedFieldToJSONFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull JSONBuffer buffer) Appends a sanitized representation of the specified field (both field name and value) for a JSON-formatted log message to the given buffer.- Specified by:
logSanitizedFieldToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logSanitizedValueToJSONFormattedLog
public void logSanitizedValueToJSONFormattedLog(@NotNull Collection<? extends CharSequence> value, @NotNull JSONBuffer buffer) Appends a sanitized representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) for a JSON-formatted log message to the given buffer.- Specified by:
logSanitizedValueToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value to be appended to the buffer. It must not benull.buffer- The buffer to which the sanitized value should be appended. It must not benull.
-
parseValue
Attempts to parse the provided string as a value in accordance with this syntax.- Specified by:
parseValuein classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
valueString- The string to be parsed.- Returns:
- The value that was parsed.
-
completelyRedactedValueConformsToSyntax
Indicates whether values that have been completely redacted still conform to this syntax.- Specified by:
completelyRedactedValueConformsToSyntaxin classLogFieldSyntax<Collection<? extends CharSequence>>- Returns:
trueif values that have been completely redacted still conform to this syntax, orfalseif not.
-
logCompletelyRedactedFieldToTextFormattedLog
public void logCompletelyRedactedFieldToTextFormattedLog(@NotNull String fieldName, @NotNull ByteStringBuffer buffer) Appends a completely redacted representation of the specified field (both field name and value) for a text-formatted log message to the given buffer.- Specified by:
logCompletelyRedactedFieldToTextFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logCompletelyRedactedFieldToJSONFormattedLog
public void logCompletelyRedactedFieldToJSONFormattedLog(@NotNull String fieldName, @NotNull JSONBuffer buffer) Appends a completely redacted representation of the specified field (both field name and value) for a JSON-formatted log message to the given buffer.- Specified by:
logCompletelyRedactedFieldToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logCompletelyRedactedValueToJSONFormattedLog
Appends a completely redacted representation of a value (without a field name, as might be suitable for a value included in a JSON array) for a JSON-formatted log message to the given buffer.- Specified by:
logCompletelyRedactedValueToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
buffer- The buffer to which the redacted value should be appended. It must not benull.
-
supportsRedactedComponents
Indicates whether this syntax supports redacting individual components of the entire value.- Specified by:
supportsRedactedComponentsin classLogFieldSyntax<Collection<? extends CharSequence>>- Returns:
trueif this syntax supports redacting individual components of the entire value, orfalseif not.
-
valueWithRedactedComponentsConformsToSyntax
Indicates whether values with one or more redacted components still conform to this syntax.- Specified by:
valueWithRedactedComponentsConformsToSyntaxin classLogFieldSyntax<Collection<? extends CharSequence>>- Returns:
trueif values with one or more redacted components still conform to this syntax.
-
redactComponents
public void redactComponents(@NotNull Collection<? extends CharSequence> value, @NotNull ByteStringBuffer buffer) Appends a string representation of the given value with redacted components to the provided buffer.- Overrides:
redactComponentsin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value for which to obtain the redacted representation. It must not benull.buffer- The buffer to which the redacted string representation should be appended. It must not benull.
-
logRedactedComponentsFieldToTextFormattedLog
public void logRedactedComponentsFieldToTextFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull ByteStringBuffer buffer) Appends a representation of the specified field (both field name and value) with redacted value components for a text-formatted log message to the given buffer. If this syntax does not support redacting components within a value, then it should redact the entire value.- Specified by:
logRedactedComponentsFieldToTextFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logRedactedComponentsFieldToJSONFormattedLog
public void logRedactedComponentsFieldToJSONFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull JSONBuffer buffer) Appends a representation of the specified field (both field name and value) with redacted value components for a JSON-formatted log message to the given buffer. If this syntax does not support redacting components within a value, then it should redact the entire value.- Specified by:
logRedactedComponentsFieldToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logRedactedComponentsValueToJSONFormattedLog
public void logRedactedComponentsValueToJSONFormattedLog(@NotNull Collection<? extends CharSequence> value, @NotNull JSONBuffer buffer) Appends a representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) with redacted components for a JSON-formatted log message to the given buffer. If this syntax does not support redacting components within a value, then it should redact the entire value.- Specified by:
logRedactedComponentsValueToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value to be appended to the buffer in redacted form. It must not benull.buffer- The buffer to which the redacted value should be appended. It must not benull.
-
completelyTokenizedValueConformsToSyntax
Indicates whether values that have been completely tokenized still conform to this syntax.- Specified by:
completelyTokenizedValueConformsToSyntaxin classLogFieldSyntax<Collection<? extends CharSequence>>- Returns:
trueif values that have been completely tokenized still conform to this syntax, orfalseif not.
-
tokenizeEntireValue
public void tokenizeEntireValue(@NotNull Collection<? extends CharSequence> value, @NotNull byte[] pepper, @NotNull ByteStringBuffer buffer) Appends a tokenized representation of the provided value to the given buffer.
The resulting token will protect the provided value by representing it in a way that makes it at infeasible to determine what the original value was. However, tokenizing the same value with the same pepper should consistently yield the same token value, so that it will be possible to identify the same value across multiple log messages.- Specified by:
tokenizeEntireValuein classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value for which to generate the token. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the tokenized representation should be appended. It must not benull.
-
logCompletelyTokenizedFieldToTextFormattedLog
public void logCompletelyTokenizedFieldToTextFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull byte[] pepper, @NotNull ByteStringBuffer buffer) Appends a completely tokenized representation of the specified field (both field name and value) for a text-formatted log message to the given buffer.- Specified by:
logCompletelyTokenizedFieldToTextFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logCompletelyTokenizedFieldToJSONFormattedLog
public void logCompletelyTokenizedFieldToJSONFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull byte[] pepper, @NotNull JSONBuffer buffer) Appends a completely tokenized representation of the specified field (both field name and value) for a JSON-formatted log message to the given buffer.- Specified by:
logCompletelyTokenizedFieldToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logCompletelyTokenizedValueToJSONFormattedLog
public void logCompletelyTokenizedValueToJSONFormattedLog(@NotNull Collection<? extends CharSequence> value, @NotNull byte[] pepper, @NotNull JSONBuffer buffer) Appends a completely tokenized representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) for a JSON-formatted log message to the given buffer.- Specified by:
logCompletelyTokenizedValueToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value to be appended to the buffer in tokenized form. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the tokenized value should be appended. It must not benull.
-
supportsTokenizedComponents
Indicates whether this syntax supports tokenizing individual components of the entire value.- Specified by:
supportsTokenizedComponentsin classLogFieldSyntax<Collection<? extends CharSequence>>- Returns:
trueif this syntax supports tokenizing individual components of the entire value, orfalseif not.
-
valueWithTokenizedComponentsConformsToSyntax
Indicates whether values with one or more tokenized components still conform to this syntax.- Specified by:
valueWithTokenizedComponentsConformsToSyntaxin classLogFieldSyntax<Collection<? extends CharSequence>>- Returns:
trueif values with one or more tokenized components still conform to this syntax.
-
tokenizeComponents
public void tokenizeComponents(@NotNull Collection<? extends CharSequence> value, @NotNull byte[] pepper, @NotNull ByteStringBuffer buffer) Appends a string representation of the given value with zero or more of its components tokenized to the provided buffer. If this syntax does not support tokenized components, then the entire value should be tokenized.
The resulting tokens will protect components of the provided value by representing them in a way that makes it at infeasible to determine what the original components were. However, tokenizing the same value with the same pepper should consistently yield the same token value, so that it will be possible to identify the same value across multiple log messages.- Overrides:
tokenizeComponentsin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value whose components should be tokenized. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the tokenized representation should be appended. It must not benull.
-
logTokenizedComponentsFieldToTextFormattedLog
public void logTokenizedComponentsFieldToTextFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull byte[] pepper, @NotNull ByteStringBuffer buffer) Appends a representation of the specified field (both field name and value) with tokenized value components for a text-formatted log message to the given buffer. If this syntax does not support tokenizing components within a value, then it should tokenize the entire value.- Specified by:
logTokenizedComponentsFieldToTextFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logTokenizedComponentsFieldToJSONFormattedLog
public void logTokenizedComponentsFieldToJSONFormattedLog(@NotNull String fieldName, @NotNull Collection<? extends CharSequence> fieldValue, @NotNull byte[] pepper, @NotNull JSONBuffer buffer) Appends a representation of the specified field (both field name and value) with tokenized value components for a JSON-formatted log message to the given buffer. If this syntax does not support tokenizing components within a value, then it should tokenize the entire value.- Specified by:
logTokenizedComponentsFieldToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
fieldName- The name for the field. It must not benull.fieldValue- The value to use for the field. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the sanitized log field should be appended. It must not benull.
-
logTokenizedComponentsValueToJSONFormattedLog
public void logTokenizedComponentsValueToJSONFormattedLog(@NotNull Collection<? extends CharSequence> value, @NotNull byte[] pepper, @NotNull JSONBuffer buffer) Appends a representation of the provided value (without a field name, as might be suitable for a value included in a JSON array) with tokenized value components for a JSON-formatted log message to the given buffer. If this syntax does not support tokenizing components within a value, then it should tokenize the entire value.- Specified by:
logTokenizedComponentsValueToJSONFormattedLogin classLogFieldSyntax<Collection<? extends CharSequence>>- Parameters:
value- The value to be appended to the buffer in tokenized form. It must not benull.pepper- A pepper used to provide brute-force protection for the resulting token. The pepper value should be kept secret so that it is not available to unauthorized users who might be able to view log information, although the same pepper value should be consistently provided when tokenizing values so that the same value will consistently yield the same token. It must not benulland should not be empty.buffer- The buffer to which the tokenized value should be appended. It must not benull.
-