I'm trying to write a filter plugin which will strip html tags from a given event property. I'd rather not re-invent the wheel so I was trying to find a gem that already included this function. I found 'sanitizer' and spent hours trying to install it to no avail (due to some missing dev tool errors on my mac, but that's a whole other story...). I then came across ActionView::Base.full_sanitzer.sanitize, which should do exactly what I want. So I tried requiring action_view and using it, but this ends up messing up the filter and throwing a logstash error "Couldn't find any filter plugin named 'sanitizer'".
Here is my plugin code:
# encoding: utf-8 require "logstash/filters/base" require "logstash/namespace" require "action_view" class LogStash::Filters::Sanitizer < LogStash::Filters::Base config_name "sanitizer" config :field, :validate => :string, :required => true public def register end # def register public def filter(event) # get specified event field @content = event.get(@field) # sanitize content @sanitized = ActionView::Base.full_sanitizer.sanitize(@content) # update event with sanitized content event.set(@field, @sanitized) # filter_matched should go in the last line of our successful code filter_matched(event) end # def filter end # class LogStash::Filters::Sanitize
I'm new to Ruby, so please excuse my ignorance
I tried this solution, as I saw it being done similarly here.
Am I missing something obvious here?