Class WalletFieldMasker

java.lang.Object
es.kukenan.smartfi.masking.fieldmasker.WalletFieldMasker
All Implemented Interfaces:
net.logstash.logback.mask.ValueMasker

public class WalletFieldMasker extends Object implements net.logstash.logback.mask.ValueMasker
Implement of ValueMasker for masking attributes configured by properties.
  • Field Details

    • enabledMasking

      private boolean enabledMasking
      Property enable masking sensible data in logs.
    • maskingAttributes

      private String maskingAttributes
      Attributes which contains sensible data for masking.
    • maskingRegExps

      private String maskingRegExps
      Regular expressions for detect into log messages sensible data for masking.
    • maskingStartPositions

      private String maskingStartPositions
      Start position for masking sensible data in logs.
    • maskingEndPositions

      private String maskingEndPositions
      End position for masking sensible data in logs.
    • maskingAssignExpressions

      private String maskingAssignExpressions
      Assign Expressions for masking toString Object or json attributes in logs.
    • maskingMaskPatterns

      private String maskingMaskPatterns
      Masking pattern for masking sensible data in logs.
  • Constructor Details

    • WalletFieldMasker

      public WalletFieldMasker()
  • Method Details

    • mask

      public Object mask(com.fasterxml.jackson.core.JsonStreamContext jsonStreamContext, Object object)
      Mask attributes of field message in logs.
      Specified by:
      mask in interface net.logstash.logback.mask.ValueMasker
      Parameters:
      jsonStreamContext - json context of the log.
      object - with the value of the field.
      Returns:
      Object with masking attributes.
    • maskString

      private String maskString(String strText, String startPosition, String endPosition, String maskChar)
      Function for mask every attribute in the logger message.
      Parameters:
      strText - Text with data for masking.
      startPosition - Start position for masking field.
      endPosition - End position for masking field.
      maskChar - Pattern mask character.
      Returns:
      Text with masking fields.
    • generateMatcherForRegExp

      private Matcher generateMatcherForRegExp(String text, String regExp)
      Generate matcher to detect attributes for masking by configuration.
      Parameters:
      text - text for detect attributes for masking.
      regExp - regular expression for detect into a text.
      Returns:
      Matcher with the regexp compile in a text.
    • getRegularExpressionForAttribute

      private String getRegularExpressionForAttribute(String attribute, String regularExpression)
      Get regular expression for extract attribute and value of text.
      Parameters:
      attribute - name of the attribute for mask.
      regularExpression - regular expression for extract value for mask.
      Returns:
      Complete regular expression for masking value on text.
    • extractValueForMasking

      private String extractValueForMasking(String attribute)
      Get value of the attribute for masking.
      Parameters:
      attribute - name of the attribute for masking.
      Returns:
      value for masking.
    • getMaskedValueForAttribute

      private String getMaskedValueForAttribute(String regularExpression, String valueForMasking, String maskValue, String startPosition, String endPosition)
      Get masked value of configured attribute.
      Parameters:
      regularExpression - regular expression to detect values for masking.
      valueForMasking - value of the attribute for masking.
      maskValue - character for mask values.
      startPosition - Start position for masking field.
      endPosition - End position for masking field.
      Returns:
      get masked value.
    • getMaskedText

      private String getMaskedText(Masker masker, String text)
      Get text masked of specific attribute contain in text.
      Parameters:
      masker - Object with all data for masking dta in logs.
      text - Text for masking.
      Returns:
      masked value.
    • getConfiguredMaskersList

      private List<Masker> getConfiguredMaskersList()
      Get a structured List with all properties for masking sensible data in logs.
      Returns:
      List contains structured MASking patterns to apply in log message.