Class ObfuscationPropertiesDecorator
java.lang.Object
org.refcodes.properties.AbstractPropertiesDecorator<org.refcodes.properties.Properties>
org.refcodes.properties.ext.obfuscation.AbstractObfuscationPropertiesDecorator
org.refcodes.properties.ext.obfuscation.ObfuscationPropertiesDecorator
- All Implemented Interfaces:
org.refcodes.mixin.AnnotatorAccessor
,org.refcodes.mixin.DecryptPrefixAccessor
,org.refcodes.mixin.DelimiterAccessor
,org.refcodes.mixin.Dumpable
,org.refcodes.mixin.EmptyAccessor
,org.refcodes.mixin.EncryptPrefixAccessor
,org.refcodes.mixin.TypeAccessor<String>
,ObfuscationProperties
,org.refcodes.properties.Properties
,org.refcodes.struct.CanonicalMap
,org.refcodes.struct.Containable
,org.refcodes.struct.InterOperableMap<String>
,org.refcodes.struct.Keys<String,
,String> org.refcodes.struct.PathMap<String>
,org.refcodes.struct.Table<String,
String>
The
ObfuscationPropertiesDecorator
represents a decorator for
Properties
instances by implementing the
ObfuscationProperties
interface. Properties marked in the resource as
"to be decrypted" are decrypted (e.g. with a host individual key). Those
encrypted properties are decrypted "on-the-fly" (in memory only) upon
accessing the according property. Retrieving a value via AbstractObfuscationPropertiesDecorator.get(Object)
(or the like), which is prefixed with "decrypt:" (default), will be decrypted
accordingly before passed back to the caller. The prefix may be changed by
invoking the according implementaion's constructor. Properties marked in the
resource as "to be encrypted" are not modified and returned without the
prefix when being queried via AbstractObfuscationPropertiesDecorator.get(Object)
(or the like), as the
Properties
are immutable. By default (if not configured otherwise)
the prefix Prefix.DECRYPT
is used as decrypt prefix (as of
Prefix.getPrefix()
). Also by default (if not configured otherwise)
the prefix Prefix.ENCRYPT
is used as encrypt prefix (as of
Prefix.getPrefix()
).-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.mixin.AnnotatorAccessor
org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B extends org.refcodes.mixin.AnnotatorAccessor.AnnotatorBuilder<B>>, org.refcodes.mixin.AnnotatorAccessor.AnnotatorMutator, org.refcodes.mixin.AnnotatorAccessor.AnnotatorProperty
Nested classes/interfaces inherited from interface org.refcodes.struct.CanonicalMap
org.refcodes.struct.CanonicalMap.CanonicalMapBuilder, org.refcodes.struct.CanonicalMap.MutableCanonicalMap
Nested classes/interfaces inherited from interface org.refcodes.mixin.DecryptPrefixAccessor
org.refcodes.mixin.DecryptPrefixAccessor.DecryptPrefixBuilder<B extends org.refcodes.mixin.DecryptPrefixAccessor.DecryptPrefixBuilder<B>>, org.refcodes.mixin.DecryptPrefixAccessor.DecryptPrefixMutator, org.refcodes.mixin.DecryptPrefixAccessor.DecryptPrefixProperty
Nested classes/interfaces inherited from interface org.refcodes.mixin.DelimiterAccessor
org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B extends org.refcodes.mixin.DelimiterAccessor.DelimiterBuilder<B>>, org.refcodes.mixin.DelimiterAccessor.DelimiterMutator, org.refcodes.mixin.DelimiterAccessor.DelimiterProperty
Nested classes/interfaces inherited from interface org.refcodes.mixin.EmptyAccessor
org.refcodes.mixin.EmptyAccessor.EmptyMutator, org.refcodes.mixin.EmptyAccessor.EmptyProperty
Nested classes/interfaces inherited from interface org.refcodes.mixin.EncryptPrefixAccessor
org.refcodes.mixin.EncryptPrefixAccessor.EncryptPrefixBuilder<B extends org.refcodes.mixin.EncryptPrefixAccessor.EncryptPrefixBuilder<B>>, org.refcodes.mixin.EncryptPrefixAccessor.EncryptPrefixMutator, org.refcodes.mixin.EncryptPrefixAccessor.EncryptPrefixProperty
Nested classes/interfaces inherited from interface org.refcodes.struct.InterOperableMap
org.refcodes.struct.InterOperableMap.InterOperableMapBuilder<T extends Object>, org.refcodes.struct.InterOperableMap.MutableInterOperableMap<T extends Object>
Nested classes/interfaces inherited from interface org.refcodes.struct.Keys
org.refcodes.struct.Keys.MutableKeys<K extends Object,
V extends Object>, org.refcodes.struct.Keys.MutableValues<K extends Object, V extends Object> Nested classes/interfaces inherited from interface org.refcodes.properties.ext.obfuscation.ObfuscationProperties
ObfuscationProperties.MutableObfuscationProperties, ObfuscationProperties.ObfuscationPropertiesBuilder
Nested classes/interfaces inherited from interface org.refcodes.struct.PathMap
org.refcodes.struct.PathMap.MutablePathMap<T extends Object>, org.refcodes.struct.PathMap.PathMapBuilder<T extends Object>
Nested classes/interfaces inherited from interface org.refcodes.properties.Properties
org.refcodes.properties.Properties.MutableProperties, org.refcodes.properties.Properties.PropertiesBuilder
Nested classes/interfaces inherited from interface org.refcodes.struct.Table
org.refcodes.struct.Table.TableDictionary<K extends Object,
V extends Object> Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor
org.refcodes.mixin.TypeAccessor.TypeBuilder<T extends Object,
B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T, B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T extends Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends Object> -
Field Summary
Fields inherited from class org.refcodes.properties.ext.obfuscation.AbstractObfuscationPropertiesDecorator
_decryptPrefix, _encryptPrefix
Fields inherited from interface org.refcodes.struct.PathMap
ANNOTATOR, DELIMITER
Fields inherited from interface org.refcodes.properties.Properties
DEFAULT_COMMENT
-
Constructor Summary
ConstructorDescriptionObfuscationPropertiesDecorator
(org.refcodes.properties.Properties aProperties) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality.ObfuscationPropertiesDecorator
(org.refcodes.properties.Properties aProperties, String aSecret) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality.ObfuscationPropertiesDecorator
(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality.ObfuscationPropertiesDecorator
(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix, String aSecret) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality.ObfuscationPropertiesDecorator
(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix, org.refcodes.runtime.SystemContext aObfuscationMode) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality.ObfuscationPropertiesDecorator
(org.refcodes.properties.Properties aProperties, org.refcodes.runtime.SystemContext aObfuscationMode) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality. -
Method Summary
Methods inherited from class org.refcodes.properties.ext.obfuscation.AbstractObfuscationPropertiesDecorator
get, getDecryptPrefix, getEncryptPrefix
Methods inherited from class org.refcodes.properties.AbstractPropertiesDecorator
containsKey, getAnnotator, getDelimiter, getProperties, isEmpty, keySet, retrieveFrom, retrieveTo, setProperties, size, toDataStructure, toDump, toDump, toPrintable, values
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.refcodes.struct.CanonicalMap
asArray, asArray, asArray, asArray, asBooleanArray, asBooleanArray, asBooleanArray, asBooleanArray, asByteArray, asByteArray, asByteArray, asByteArray, asCharArray, asCharArray, asCharArray, asCharArray, asDoubleArray, asDoubleArray, asDoubleArray, asDoubleArray, asFloatArray, asFloatArray, asFloatArray, asFloatArray, asIntArray, asIntArray, asIntArray, asIntArray, asLongArray, asLongArray, asLongArray, asLongArray, asShortArray, asShortArray, asShortArray, asShortArray, queryBetween, toMap, toProperties
Methods inherited from interface org.refcodes.struct.Containable
size
Methods inherited from interface org.refcodes.mixin.Dumpable
toDump, toDump
Methods inherited from interface org.refcodes.mixin.EmptyAccessor
isEmpty
Methods inherited from interface org.refcodes.struct.InterOperableMap
getBoolean, getBoolean, getBoolean, getBoolean, getBoolean, getBooleanOr, getBooleanOr, getBooleanOr, getBooleanOr, getBooleanOr, getByte, getByte, getByte, getByte, getByte, getByteOr, getByteOr, getByteOr, getByteOr, getByteOr, getChar, getChar, getChar, getChar, getChar, getCharOr, getCharOr, getCharOr, getCharOr, getCharOr, getClass, getClass, getClass, getClass, getClass, getClassOr, getClassOr, getClassOr, getClassOr, getClassOr, getDouble, getDouble, getDouble, getDouble, getDouble, getDoubleOr, getDoubleOr, getDoubleOr, getDoubleOr, getDoubleOr, getEnum, getEnum, getEnum, getEnum, getEnum, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getEnumOr, getFloat, getFloat, getFloat, getFloat, getFloat, getFloatOr, getFloatOr, getFloatOr, getFloatOr, getFloatOr, getInt, getInt, getInt, getInt, getInt, getIntOr, getIntOr, getIntOr, getIntOr, getIntOr, getLong, getLong, getLong, getLong, getLong, getLongOr, getLongOr, getLongOr, getLongOr, getLongOr, getShort, getShort, getShort, getShort, getShort, getShortOr, getShortOr, getShortOr, getShortOr, getShortOr, getString, getString, getString, getString, getString, getStringOr, getStringOr, getStringOr, getStringOr, getStringOr
Methods inherited from interface org.refcodes.struct.Keys
containsKey, getOr, keySet, use, values
Methods inherited from interface org.refcodes.struct.PathMap
children, children, children, children, children, children, containsKey, containsKey, containsKey, dirs, dirs, dirs, dirs, dirs, dirs, findPaths, fromExternalPath, get, get, get, getArray, getArray, getArray, getArray, getArray, getArray, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayIndexes, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getArrayOr, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getDirIndexes, getRootPath, getValueAt, getValueAt, getValueAt, getValueAt, getValueAt, getValueAt, hasChildren, hasChildren, hasChildren, hasChildren, hasChildren, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasDirAt, hasParentPath, hasPath, hasPath, hasPath, hasPath, hasPath, hasSubDirs, hasSubDirs, hasSubDirs, hasSubDirs, hasValue, hasValue, hasValue, hasValue, hasValue, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, hasValueAt, isArray, isArray, isArray, isArray, isArray, isArray, isChild, isChild, isChild, isChild, isDir, isDir, isDir, isDir, isDir, isEqualTo, isIndexDir, isIndexDir, isIndexDir, isIndexDir, isIndexDir, isLeaf, isLeaf, isLeaf, isLeaf, isLeaf, isRootPath, keySet, keySet, keySet, keySet, keySet, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastArrayIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, lastDirIndex, leaves, leaves, leaves, leaves, leaves, leaves, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextArrayIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, nextDirIndex, paths, paths, paths, paths, paths, paths, queryPaths, queryPaths, queryPaths, queryPaths, queryPaths, queryPaths, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, sortedKeys, toDataStructure, toDataStructure, toExternalPath, toInstance, toInstance, toLeaf, toMap, toNormalizedPath, toParentPath, toPath, toPath, toPath, toPath, toPathElements, toPathList, toPathStack, toPrintable, toPropertyPath, toType, toType, toType, toType, toType, toType, toType, toType
Methods inherited from interface org.refcodes.properties.Properties
containsValue, getAnnotator, getDelimiter, getDir, getDir, getDir, getDir, getDir, getDirAt, getDirAt, getDirAt, getDirAt, getDirAt, getDirAt, getDirs, getDirs, getDirs, getDirs, getDirs, getType, query, query, query, query, query, queryBetween, queryBetween, queryBetween, queryBetween, queryBetween, queryFrom, queryFrom, queryFrom, queryFrom, queryFrom, queryFrom, queryTo, queryTo, queryTo, queryTo, queryTo, queryTo, retrieveBetween, retrieveBetween, retrieveBetween, retrieveBetween, retrieveBetween, retrieveFrom, retrieveFrom, retrieveFrom, retrieveFrom, retrieveFrom, retrieveTo, retrieveTo, retrieveTo, retrieveTo, retrieveTo
-
Constructor Details
-
ObfuscationPropertiesDecorator
public ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality. Changes applied to the providedProperties
affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.- Parameters:
aProperties
- TheProperties
to be decorated.
-
ObfuscationPropertiesDecorator
public ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality. Changes applied to the providedProperties
affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.- Parameters:
aProperties
- TheProperties
to be decorated.aDecryptPrefix
- The decrypt prefix to be used for values which are to be decrypted, e.g. "decrypt:".aEncryptPrefix
- The decrypt prefix to be used. for values which are to be encrypted, e.g. "encrypt:".
-
ObfuscationPropertiesDecorator
public ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix, org.refcodes.runtime.SystemContext aObfuscationMode) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality. Changes applied to the providedProperties
affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.- Parameters:
aProperties
- TheProperties
to be decorated.aDecryptPrefix
- The decrypt prefix to be used for values which are to be decrypted, e.g. "decrypt:".aEncryptPrefix
- The decrypt prefix to be used. for values which are to be encrypted, e.g. "encrypt:".aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
ObfuscationPropertiesDecorator
public ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix, String aSecret) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality. Changes applied to the providedProperties
affect the decorator. The given secret is used to encrypt and decrypt the according properties.- Parameters:
aProperties
- TheProperties
to be decorated.aDecryptPrefix
- The decrypt prefix to be used for values which are to be decrypted, e.g. "decrypt:".aEncryptPrefix
- The decrypt prefix to be used. for values which are to be encrypted, e.g. "encrypt:".aSecret
- The secret to use when encrypting and decrypting the according properties.
-
ObfuscationPropertiesDecorator
public ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, org.refcodes.runtime.SystemContext aObfuscationMode) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality. Changes applied to the providedProperties
affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.- Parameters:
aProperties
- TheProperties
to be decorated.aObfuscationMode
- TheSystemContext
specifies which level of obfuscation is to be used when encountering upon obfuscated properties: E.g. obfuscation may be bound to the host, the "secret" used for obfuscation being the same for all applications on the same host or obfuscation may be bound to the application, being different for different applications on the same host.
-
ObfuscationPropertiesDecorator
public ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aSecret) Decorates the providedProperties
with additionalObfuscationProperties
behavior or functionality. Changes applied to the providedProperties
affect the decorator. The given secret is used to encrypt and decrypt the according properties.- Parameters:
aProperties
- TheProperties
to be decorated.aSecret
- The secret to use when encrypting and decrypting the according properties.
-