class SiteguardLite::Log::Detect

Constants

ACTION
CLIENT_IP
CONN_TIME
CONTENT_TYPE
DETECT_NAME
DETECT_STAT
FILE_SIZE
HIERARCHY_CODE
HTTP_METHOD
JUDGE
RESULT
RULE_PARAMS_NUM
RULE_SIG
RULE_URLDECODE
SEARCH_KEY
TIME
TIME_EPOCH
URL
USER
WAF_FILTER

Public Class Methods

new(leading_time: false) click to toggle source
# File lib/siteguard_lite/log/detect.rb, line 27
def initialize(leading_time: false)
  @leading_time = leading_time
end

Public Instance Methods

parse(line_str) click to toggle source
# File lib/siteguard_lite/log/detect.rb, line 31
def parse(line_str)
  if m = line_str.match(pattern)
    m.named_captures
  else
    {}
  end
end

Private Instance Methods

pattern() click to toggle source
# File lib/siteguard_lite/log/detect.rb, line 41
def pattern
  @pattern ||= if @leading_time
    /\A#{TIME} : #{pattern_parts.join('\s+')}/
  else
    /\A#{pattern_parts.join('\s+')}/
  end
end
pattern_parts() click to toggle source
# File lib/siteguard_lite/log/detect.rb, line 49
def pattern_parts
  [
    TIME_EPOCH,
    CONN_TIME,
    CLIENT_IP,
    RESULT,
    FILE_SIZE,
    HTTP_METHOD,
    URL,
    USER,
    HIERARCHY_CODE,
    CONTENT_TYPE,
    DETECT_STAT,
    ACTION,
    JUDGE,
    SEARCH_KEY,
  ]
end