Class: LogStash::Filters::Cipher
- Inherits:
-
Base
- Object
- Base
- LogStash::Filters::Cipher
- Defined in:
- lib/logstash/filters/cipher.rb
Overview
This filter parses a source and apply a cipher or decipher before storing it in the target.
Instance Method Summary collapse
-
#filter(event) ⇒ Object
def register.
- #register ⇒ Object
Instance Method Details
#filter(event) ⇒ Object
def register
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/logstash/filters/cipher.rb', line 130 def filter(event) source = event.get(@source) if (source.nil? || source.empty?) @logger.debug("Event to filter, event 'source' field: " + @source + " was null(nil) or blank, doing nothing") return end result = case(@mode) when "encrypt" then do_encrypt(source) when "decrypt" then do_decrypt(source) else @logger.error("Invalid cipher mode. Valid values are \"encrypt\" or \"decrypt\"", :mode => @mode) raise "Internal Error, aborting." end event.set(@target, result) filter_matched(event) unless result.nil? rescue => e @logger.error("An error occurred while #{@mode}ing.", :exception => e.) event.tag("_cipherfiltererror") end |
#register ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/logstash/filters/cipher.rb', line 117 def register require 'base64' if @base64 if cipher_reuse_enabled? @reusable_cipher = Concurrent::ThreadLocalVar.new @cipher_reuse_count = Concurrent::ThreadLocalVar.new end if @key.value.length != @key_size @logger.debug("key length is " + @key.value.length.to_s + ", padding it to " + @key_size.to_s + " with '" + @key_pad.to_s + "'") @key = @key.class.new(@key.value[0,@key_size].ljust(@key_size,@key_pad)) end end |