Sha256: 1a807e7698261ad0fe6062cec84690194849ec3ea1a3055303c5da80547b9101
Contents?: true
Size: 1.82 KB
Versions: 4
Compression:
Stored size: 1.82 KB
Contents
# Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.io/terms.html require 'json' require 'sqreen/event' module Sqreen # When a request is deeemed worthy of being sent to the backend class RequestRecord < Sqreen::Event def observed (payload && payload[:observed]) || {} end def to_hash res = { :version => '20171208' } if payload[:observed] res[:observed] = payload[:observed] rulespack = nil observed.fetch(:attacks, []).each do |att| rulespack = att.delete(:rulespack_id) || rulespack end observed.fetch(:sqreen_exceptions, []).each do |exc| excp = exc.delete(:exception) if excp exc[:message] = excp.message exc[:klass] = excp.class.name end rulespack = exc.delete(:rulespack_id) || rulespack end res[:rulespack_id] = rulespack unless rulespack.nil? if observed[:observations] res[:observed][:observations] = observed[:observations].map do |cat, key, value, time| { :category => cat, :key => key, :value => value, :time => time } end end if observed[:sdk] payload[:observed][:sdk] = observed[:sdk].map do |meth, time, *args| { :name => meth, :time => time, :args => args } end end end res[:local] = payload['local'] if payload['local'] if payload['request'] res[:request] = payload['request'] res[:client_ip] = res[:request].delete(:client_ip) if res[:request][:client_ip] else res[:request] = {} end res[:request][:parameters] = payload['params'] if payload['params'] res[:request][:headers] = payload['headers'] if payload['headers'] res end end end
Version data entries
4 entries across 4 versions & 1 rubygems