You are here

class SensorUserFailedLogins in Monitoring 7

Monitors user failed login from dblog messages.

Helps to identify bots or brute force attacks.

Hierarchy

Expanded class hierarchy of SensorUserFailedLogins

File

lib/Drupal/monitoring/Sensor/Sensors/SensorUserFailedLogins.php, line 16
Contains \Drupal\monitoring\Sensor\Sensors\SensorUserFailedLogins.

Namespace

Drupal\monitoring\Sensor\Sensors
View source
class SensorUserFailedLogins extends SensorDatabaseAggregator {

  /**
   * {@inheritdoc}
   */
  public function buildQuery() {
    $query = parent::buildQuery();
    $query
      ->addField('watchdog', 'variables');
    $query
      ->groupBy('watchdog.variables');
    return $query;
  }

  /**
   * {@inheritdoc}
   */
  public function runSensor(SensorResultInterface $result) {
    $records_count = 0;
    foreach ($this
      ->getQueryResult()
      ->fetchAll() as $row) {
      $records_count += $row->records_count;
      $variables = unserialize($row->variables);
      $result
        ->addStatusMessage('@user: @count', array(
        '@user' => $variables['%user'],
        '@count' => $row->records_count,
      ));
    }
    $result
      ->setValue($records_count);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Sensor::$info protected property Current sensor info object.
Sensor::getSensorName public function Gets sensor name (not the label). Overrides SensorInterface::getSensorName
Sensor::isEnabled public function Determines if sensor is enabled. Overrides SensorInterface::isEnabled
Sensor::__construct function Instantiates a sensor object. 1
SensorDatabaseAggregator::$fetchedObject protected property The fetched object from the query result.
SensorDatabaseAggregator::$queryArguments protected property The arguments of the executed query.
SensorDatabaseAggregator::$queryResult protected property The result of the db query execution.
SensorDatabaseAggregator::buildQueryAggregate protected function Adds aggregate expressions to the query.
SensorDatabaseAggregator::fetchObject public function Get fetched object from the executed query.
SensorDatabaseAggregator::getEntityTypeFromTable protected function Returns the entity type for a given base table.
SensorDatabaseAggregator::getFieldName protected function Returns the field name to use for a condition and ensures necessary joins.
SensorDatabaseAggregator::getQueryArguments protected function Returns query arguments of the last executed query.
SensorDatabaseAggregator::getQueryResult protected function Executes the query and returns the result.
SensorDatabaseAggregator::getTimeIntervalOptions protected function Returns time interval options.
SensorDatabaseAggregator::joinFieldTable protected function Joins the field data table for a given field.
SensorDatabaseAggregator::resultVerbose public function Provide additional info about sensor call. Overrides SensorExtendedInfoInterface::resultVerbose 1
SensorDatabaseAggregator::settingsForm public function Gets settings form for a specific sensor. Overrides SensorThresholds::settingsForm 1
SensorThresholds::setFormError protected function Sets a form error for the given threshold key.
SensorThresholds::settingsFormValidate public function Form validator for a sensor settings form. Overrides SensorConfigurable::settingsFormValidate
SensorUserFailedLogins::buildQuery public function Builds the database query. Overrides SensorDatabaseAggregator::buildQuery
SensorUserFailedLogins::runSensor public function Runs the sensor, updating $sensor_result. Overrides SensorDatabaseAggregator::runSensor