Class EncryptingReader
java.lang.Object
com.northconcepts.datapipeline.core.DataObject
com.northconcepts.datapipeline.core.Endpoint
com.northconcepts.datapipeline.core.DataEndpoint
com.northconcepts.datapipeline.core.DataReader
com.northconcepts.datapipeline.core.ProxyReader
com.northconcepts.datapipeline.internal.lang.IntegrationProxyReader
com.northconcepts.datapipeline.security.EncryptingReader
- Direct Known Subclasses:
AsymmetricEncryptingReader,SymmetricEncryptingReader
Base class for proxy readers that encrypt the selected fields of each record in place, or every field when none are selected.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.northconcepts.datapipeline.core.DataEndpoint
DataEndpoint.State -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ByteArrayOutputStream2protected Cipherprotected final FieldListprotected final BinarySerializerFields inherited from class com.northconcepts.datapipeline.core.DataReader
fieldLineage, recordLineageFields inherited from class com.northconcepts.datapipeline.core.DataEndpoint
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEYFields inherited from class com.northconcepts.datapipeline.core.Endpoint
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZEFields inherited from class com.northconcepts.datapipeline.core.DataObject
id, log, name, TIMESTAMP_FORMAT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.Adds fields to encrypt; only allowed before the reader is opened.addFields(Collection<String> fieldNames) Adds fields to encrypt; only allowed before the reader is opened.protected final voidencryptField(Field field) Encrypts the field withencryptFieldImpl(Field), re-initializing the cipher if that fails.protected abstract voidencryptFieldImpl(Field field) Replaces the field's value in place with its encrypted form.Returns the fields to encrypt; when empty, every top-level field of each record is encrypted.protected abstract voidInitializes or resetscipherfor encryption; called when the reader opens and again after a field fails to encrypt.protected final RecordinterceptRecord(Record record) Overridden by subclasses to transform, drop, or observe a record on its way through this proxy.voidopen()Makes this endpoint ready for reading or writing.Methods inherited from class com.northconcepts.datapipeline.core.ProxyReader
available, close, getNestedReader, map, map, readImpl, setNestedDataReader, setNestedDataReaderMethods inherited from class com.northconcepts.datapipeline.core.DataReader
addLineage, getBufferSize, getNestedEndpoint, getReader, getRootEndpoint, getRootReader, isExhausted, isLineageSupported, isSaveLineage, peek, pop, push, read, setSaveLineage, skipMethods inherited from class com.northconcepts.datapipeline.core.DataEndpoint
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toStringMethods inherited from class com.northconcepts.datapipeline.core.Endpoint
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
-
Field Details
-
fields
-
buffer
protected final ByteArrayOutputStream2 buffer -
serializer
protected final BinarySerializer serializer -
cipher
-
-
Constructor Details
-
EncryptingReader
-
-
Method Details
-
getFields
Returns the fields to encrypt; when empty, every top-level field of each record is encrypted. -
addFields
Adds fields to encrypt; only allowed before the reader is opened. -
addFields
Adds fields to encrypt; only allowed before the reader is opened. -
open
Description copied from class:DataEndpointMakes this endpoint ready for reading or writing.- Overrides:
openin classIntegrationProxyReader- Throws:
DataException
-
initCipher
protected abstract void initCipher()Initializes or resetscipherfor encryption; called when the reader opens and again after a field fails to encrypt. -
interceptRecord
Description copied from class:ProxyReaderOverridden by subclasses to transform, drop, or observe a record on its way through this proxy.Contract for subclasses (see also
docs/authoring/ProxyReader.md):- Return the record (possibly modified) to pass it downstream.
- Return
nullto drop the record; the framework reads the next one. - Throw to fail the pipeline; the framework wraps the throwable in a
DataExceptionwith.setRecord(record). - The nested
DataReaderis opened and closed for you; do not read from it here. - Do not call
DataEndpoint.incrementRecordCount()here.
- Overrides:
interceptRecordin classProxyReader- Throws:
Throwable
-
encryptField
Encrypts the field withencryptFieldImpl(Field), re-initializing the cipher if that fails.- Throws:
Throwable
-
encryptFieldImpl
Replaces the field's value in place with its encrypted form.- Throws:
Throwable
-
addExceptionProperties
Description copied from class:EndpointAdds this endpoint's current state to aDataException. Since this method is called whenever an exception is thrown, subclasses should override it to add their specific information.- Overrides:
addExceptionPropertiesin classProxyReader
-