module TCellAgent::Hooks::LoginFraud

Public Class Methods

get_logger() click to toggle source

NOTE: mock out in tests

# File lib/tcell_agent/hooks/login_fraud.rb, line 7
def self.get_logger
  unless defined?(@login_fraud_logger)
    @login_fraud_logger = TCellAgent::ModuleLogger.new(TCellAgent.logger, name)
  end

  @login_fraud_logger
end
report_login_event(status, env_or_header_keys, tcell_data, user_id, password, user_valid) click to toggle source
# File lib/tcell_agent/hooks/login_fraud.rb, line 15
def self.report_login_event(status,
                            env_or_header_keys,
                            tcell_data,
                            user_id,
                            password,
                            user_valid)
  return unless TCellAgent.configuration.should_intercept_requests? && tcell_data

  login_policy = TCellAgent.policy(TCellAgent::PolicyTypes::LOGINFRAUD)

  if ![TCellAgent::Hooks::V1::Login::LOGIN_FAILURE,
       TCellAgent::Hooks::V1::Login::LOGIN_SUCCESS].include?(status)
    get_logger.error("Unkown login status: #{status}")
  elsif status == TCellAgent::Hooks::V1::Login::LOGIN_FAILURE
    login_policy.report_login_failure(
      user_id,
      password,
      env_or_header_keys,
      user_valid,
      tcell_data
    )
  elsif status == TCellAgent::Hooks::V1::Login::LOGIN_SUCCESS
    login_policy.report_login_success(
      user_id,
      env_or_header_keys,
      tcell_data
    )
  end
end