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>

public class ObfuscationPropertiesDecorator extends AbstractObfuscationPropertiesDecorator
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

    Constructors
    Constructor
    Description
    ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties)
    Decorates the provided Properties with additional ObfuscationProperties behavior or functionality.
    ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aSecret)
    Decorates the provided Properties with additional ObfuscationProperties behavior or functionality.
    ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix)
    Decorates the provided Properties with additional ObfuscationProperties behavior or functionality.
    ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix, String aSecret)
    Decorates the provided Properties with additional ObfuscationProperties behavior or functionality.
    ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix, org.refcodes.runtime.SystemContext aObfuscationMode)
    Decorates the provided Properties with additional ObfuscationProperties behavior or functionality.
    ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, org.refcodes.runtime.SystemContext aObfuscationMode)
    Decorates the provided Properties with additional ObfuscationProperties 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 provided Properties with additional ObfuscationProperties behavior or functionality. Changes applied to the provided Properties affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.
      Parameters:
      aProperties - The Properties to be decorated.
    • ObfuscationPropertiesDecorator

      public ObfuscationPropertiesDecorator(org.refcodes.properties.Properties aProperties, String aDecryptPrefix, String aEncryptPrefix)
      Decorates the provided Properties with additional ObfuscationProperties behavior or functionality. Changes applied to the provided Properties affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.
      Parameters:
      aProperties - The Properties 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 provided Properties with additional ObfuscationProperties behavior or functionality. Changes applied to the provided Properties affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.
      Parameters:
      aProperties - The Properties 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 - The SystemContext 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 provided Properties with additional ObfuscationProperties behavior or functionality. Changes applied to the provided Properties affect the decorator. The given secret is used to encrypt and decrypt the according properties.
      Parameters:
      aProperties - The Properties 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 provided Properties with additional ObfuscationProperties behavior or functionality. Changes applied to the provided Properties affect the decorator. A host specific secret is used to encrypt and decrypt the according properties.
      Parameters:
      aProperties - The Properties to be decorated.
      aObfuscationMode - The SystemContext 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 provided Properties with additional ObfuscationProperties behavior or functionality. Changes applied to the provided Properties affect the decorator. The given secret is used to encrypt and decrypt the according properties.
      Parameters:
      aProperties - The Properties to be decorated.
      aSecret - The secret to use when encrypting and decrypting the according properties.