class LogstashAuditor::LogstashAuditor
Public Instance Methods
audit(audit_data)
click to toggle source
inversion of control method required by the AuditorAPI
# File lib/logstash_auditor/auditor.rb, line 19 def audit(audit_data) request = create_request(audit_data) http = create_http_transport send_request_to_server(http, request) end
configuration_is_valid?(configuration)
click to toggle source
inversion of control method required by the AuditorAPI
# File lib/logstash_auditor/auditor.rb, line 8 def configuration_is_valid?(configuration) basic_auth_configuration_valid?(configuration) or certificate_auth_configuration_valid?(configuration) end
prefer_direct_call?()
click to toggle source
inversion of control method required by the AuditorAPI
# File lib/logstash_auditor/auditor.rb, line 14 def prefer_direct_call? false end
Private Instance Methods
add_basic_auth(request)
click to toggle source
# File lib/logstash_auditor/auditor.rb, line 62 def add_basic_auth(request) request.basic_auth(@configuration['username'], @configuration['password']) end
add_certificate_authentication(http)
click to toggle source
# File lib/logstash_auditor/auditor.rb, line 49 def add_certificate_authentication(http) http.cert = OpenSSL::X509::Certificate.new(@configuration['certificate']) http.key = OpenSSL::PKey::RSA.new(@configuration['private_key']) http.verify_mode = OpenSSL::SSL::VERIFY_NONE end
basic_auth_configuration_valid?(configuration)
click to toggle source
# File lib/logstash_auditor/auditor.rb, line 27 def basic_auth_configuration_valid?(configuration) required_parameters = ['host_url', 'username', 'password'] required_parameters.each { |parameter| return false unless configuration.include?(parameter) } return true end
certificate_auth_configuration_valid?(configuration)
click to toggle source
# File lib/logstash_auditor/auditor.rb, line 33 def certificate_auth_configuration_valid?(configuration) required_parameters = ['host_url', 'certificate', 'private_key'] required_parameters.each { |parameter| return false unless configuration.include?(parameter) } return true end
create_http_transport()
click to toggle source
# File lib/logstash_auditor/auditor.rb, line 39 def create_http_transport uri = URI.parse(@configuration['host_url']) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true if uri.is_a?(URI::HTTPS) http.read_timeout = @configuration['timeout'] http.open_timeout = @configuration['timeout'] add_certificate_authentication(http) if certificate_auth_configuration_valid?(@configuration) return http end
create_request(audit_data)
click to toggle source
# File lib/logstash_auditor/auditor.rb, line 55 def create_request(audit_data) request = Net::HTTP::Post.new("/", initheader = {'Content-Type' => 'text/plain'}) add_basic_auth(request) if @configuration['username'] and @configuration['password'] request.body = audit_data return request end
send_request_to_server(http, request)
click to toggle source
# File lib/logstash_auditor/auditor.rb, line 66 def send_request_to_server(http, request) response = http.request(request) rescue nil raise StandardError, 'Failed to create connection' if response.nil? raise StandardError, "Server rejected post with error code #{response.code}" unless response.code == "200" end