Задача [0444]: API для авторизации суперадмина и суперметодолога

Формулировка проблемы: необходим метод аутентификации пользователя, который будет использоваться для сопряжения с модулем nginx ngx_http_auth_request_module, причём, помимо того, что должна проверяться возможность пользователя входить в систему, также (в зависимости от параметра) должна проверяться роль пользователя (суперадминистратор либо суперметодолог).

Решение: необходимо реализовать метод API, который проверяет возможность пользователя, идентифицируемого с помощью HTTP Basic Auth, входить в систему. Помимо того, если передан URI-параметр, дополнительно проверяется наличие у пользователя роли суперадминистратора либо суперметодолога.

Результат запроса - HTTP код 200 в случае успешной аутентификации, 401 - если пользователь не имеет доступа в систему, не найден или передан неправильный пароль, 403 - в случае, если он не обладает указанной ролью, 500 - ошибка на сервере.

URI метода: /rest/api/auth/{role}.

Тип запроса: GET.

Метод принимает следующий необязательный URI-параметр role - роль пользователя, с которой он хочет авторизоваться, один из трех вариантов:

Если пользователь имеет доступ в систему и обладает указанной ролью, код возврата HTTP - 200.

Альтернативные потоки событий.