Class MaskingJsonGenerator
- All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, Versioned
JsonGenerator that can mask sensitive field values before delegating to a delegate JsonGenerator.
Identifying field values to mask by path
TheMaskingJsonGenerator uses a collection of FieldMaskers
to identify fields to mask by JSON path.
These field maskers are invoked after a new field name is written to determine if the field's value should be masked. If any masker returns a non-null value, then the returned value will be written as the field's value (instead of the original field value). Note that the masked value's type might differ from the fields original type.
Example FieldMaskers:
Identifying field values to mask by value
TheMaskingJsonGenerator uses a collection of ValueMaskers
to mask field values by JSON path and field value.
These value maskers are invoked each time a new number or string scalar value is written to determine if the value should be masked. If all maskers return null, then the value is written as-is (i.e. not masked). If any masker returns non-null, then the returned value will be written as the field value.
Raw values are NOT masked.
It is much more efficient to mask field values by path, rather than by field value.
Therefore, prefer using FieldMaskers instead of ValueMaskers whenever possible.
Example value maskers:
-
Field Summary
FieldsFields inherited from class JsonGeneratorDelegate
delegate, delegateCopyMethods -
Constructor Summary
ConstructorsConstructorDescriptionMaskingJsonGenerator(JsonGenerator delegate, Collection<FieldMasker> fieldMaskers, Collection<ValueMasker> valueMaskers) -
Method Summary
Modifier and TypeMethodDescriptionwriteArray(double[] array, int offset, int length) writeArray(int[] array, int offset, int length) writeArray(long[] array, int offset, int length) writeBinary(byte[] data) writeBinary(byte[] data, int offset, int len) intwriteBinary(InputStream data, int dataLength) writeBinary(Base64Variant b64variant, byte[] data, int offset, int len) intwriteBinary(Base64Variant b64variant, InputStream data, int dataLength) writeBoolean(boolean state) writeEmbeddedObject(Object object) writeName(SerializableString name) writeNumber(double v) writeNumber(float v) writeNumber(int v) writeNumber(long v) writeNumber(short v) writeNumber(String encodedValue) writeObjectId(Object id) writeObjectRef(Object id) writeOmittedProperty(String fieldName) writePropertyId(long id) writeRaw(char c) writeRaw(char[] text, int offset, int len) writeRawUTF8String(byte[] text, int offset, int length) writeRawValue(char[] text, int offset, int len) writeRawValue(String text) writeRawValue(String text, int offset, int len) writeStartArray(Object forValue) writeStartArray(Object forValue, int size) writeStartObject(Object forValue) writeStartObject(Object forValue, int size) writeString(char[] text, int offset, int len) writeString(Reader reader, int len) writeString(String text) writeTypeId(Object id) writeUTF8String(byte[] text, int offset, int length) Methods inherited from class JsonGeneratorDelegate
assignCurrentValue, canOmitProperties, canWriteObjectId, canWriteTypeId, close, configure, copyCurrentEvent, copyCurrentStructure, currentValue, delegate, flush, getCharacterEscapes, getHighestNonEscapedChar, getPrettyPrinter, getSchema, has, isClosed, isEnabled, objectWriteContext, streamWriteCapabilities, streamWriteContext, streamWriteFeatures, streamWriteOutputBuffered, streamWriteOutputTarget, version, writeArray, writeNumber, writePOJO, writeTreeMethods inherited from class JsonGenerator
_constructWriteException, _constructWriteException, _constructWriteException, _constructWriteException, _copyCurrentContents, _copyCurrentContentsExact, _copyCurrentFloatValue, _copyCurrentFloatValueExact, _copyCurrentIntValue, _copyCurrentStringValue, _reportArgumentError, _reportError, _reportUnsupportedOperation, _reportUnsupportedOperation, _verifyOffsets, _wrapIOFailure, _writeTypePrefixUsingNative, _writeTypePrefixUsingWrapper, copyCurrentEventExact, copyCurrentStructureExact, setCharacterEscapes, streamWriteConstraints, writeArrayPropertyStart, writeBinaryProperty, writeBooleanProperty, writeNullProperty, writeNumberProperty, writeNumberProperty, writeNumberProperty, writeNumberProperty, writeNumberProperty, writeNumberProperty, writeNumberProperty, writeObjectPropertyStart, writePOJOProperty, writeRawValue, writeStringProperty, writeTypePrefix, writeTypeSuffix
-
Field Details
-
MASK
- See Also:
-
-
Constructor Details
-
MaskingJsonGenerator
public MaskingJsonGenerator(JsonGenerator delegate, Collection<FieldMasker> fieldMaskers, Collection<ValueMasker> valueMaskers) - Parameters:
delegate- the generator to which to write potentially masked JSONfieldMaskers-FieldMaskers to mask fieldsvalueMaskers-ValueMaskers to mask values
-
-
Method Details
-
writeArray
- Overrides:
writeArrayin classJsonGeneratorDelegate
-
writeArray
- Overrides:
writeArrayin classJsonGeneratorDelegate
-
writeArray
- Overrides:
writeArrayin classJsonGeneratorDelegate
-
writeName
- Overrides:
writeNamein classJsonGeneratorDelegate
-
writeName
- Overrides:
writeNamein classJsonGeneratorDelegate
-
writePropertyId
- Overrides:
writePropertyIdin classJsonGeneratorDelegate
-
writeBinary
- Overrides:
writeBinaryin classJsonGeneratorDelegate
-
writeBinary
- Overrides:
writeBinaryin classJsonGenerator
-
writeBinary
- Overrides:
writeBinaryin classJsonGenerator
-
writeBinary
- Overrides:
writeBinaryin classJsonGeneratorDelegate
-
writeBinary
- Overrides:
writeBinaryin classJsonGenerator
-
writeBoolean
- Overrides:
writeBooleanin classJsonGeneratorDelegate
-
writeEmbeddedObject
- Overrides:
writeEmbeddedObjectin classJsonGeneratorDelegate
-
writeNull
- Overrides:
writeNullin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeNumber
- Overrides:
writeNumberin classJsonGeneratorDelegate
-
writeObjectId
- Overrides:
writeObjectIdin classJsonGeneratorDelegate
-
writeObjectRef
- Overrides:
writeObjectRefin classJsonGeneratorDelegate
-
writeOmittedProperty
- Overrides:
writeOmittedPropertyin classJsonGeneratorDelegate
-
writeRaw
- Overrides:
writeRawin classJsonGeneratorDelegate
-
writeRaw
- Overrides:
writeRawin classJsonGeneratorDelegate
-
writeRaw
- Overrides:
writeRawin classJsonGeneratorDelegate
-
writeRaw
- Overrides:
writeRawin classJsonGeneratorDelegate
-
writeRaw
- Overrides:
writeRawin classJsonGeneratorDelegate
-
writeRawValue
- Overrides:
writeRawValuein classJsonGeneratorDelegate
-
writeRawValue
- Overrides:
writeRawValuein classJsonGeneratorDelegate
-
writeRawValue
- Overrides:
writeRawValuein classJsonGeneratorDelegate
-
writeRawUTF8String
- Overrides:
writeRawUTF8Stringin classJsonGeneratorDelegate
-
writeStartArray
- Overrides:
writeStartArrayin classJsonGeneratorDelegate
-
writeStartArray
- Overrides:
writeStartArrayin classJsonGeneratorDelegate
-
writeStartArray
- Overrides:
writeStartArrayin classJsonGeneratorDelegate
-
writeStartObject
- Overrides:
writeStartObjectin classJsonGeneratorDelegate
-
writeStartObject
- Overrides:
writeStartObjectin classJsonGeneratorDelegate
-
writeStartObject
- Overrides:
writeStartObjectin classJsonGeneratorDelegate
-
writeString
- Overrides:
writeStringin classJsonGeneratorDelegate
-
writeString
- Overrides:
writeStringin classJsonGeneratorDelegate
-
writeString
- Overrides:
writeStringin classJsonGeneratorDelegate
-
writeString
- Overrides:
writeStringin classJsonGeneratorDelegate
-
writeUTF8String
- Overrides:
writeUTF8Stringin classJsonGeneratorDelegate
-
writeTypeId
- Overrides:
writeTypeIdin classJsonGeneratorDelegate
-
writeEndArray
- Overrides:
writeEndArrayin classJsonGeneratorDelegate
-
writeEndObject
- Overrides:
writeEndObjectin classJsonGeneratorDelegate
-