Class isp api::AuthMethod

Материал из ISPWiki
Перейти к: навигация, поиск

Авторизация пользователей

Класс isp_api::AuthMethod

Класс описывающий метод авторизации

#include <auth_method.h> 

Описание:

class isp_api::AuthMethod

За авторизацию пользователей отвечает функция COREmanager с именем определенным в макросе AUTH_ACTION. Все пользовательские методы авторизации, это, в первую очередь, Event выполняющийся перед этой функцией. Результатом работы этого Event должен быть xml документ со следующей структурой:

<?xml version="1.0"?> 
<doc> 
 <ok level=«уровень доступа» name=«имя пользователя» method=«имя метода авторизации»> 
  [<ext name=«имя»>значение</ext>] 
    ... 
 </ok> 
</doc> 
        Кроме этого Event, для нормальной работы необходимо определить несколько 
        функций. Все это может быть сделано "вручную", или можно объявить 
        наследника класса AuthMethod, который создаст за вас все необходимые обработчики. 

Родители:


Открытые члены (кратко)

AuthMethod ( const string &name , Priority priority = epBefore , const string &base = "" )

Конструктор


virtual bool IsOwner ( const Authen &auth , const string &user )

Проверить владельца


virtual void SetPassword ( const string &user , const string &pass )

Установить пароль

Методы для авторизации пользователя

Следующие методы используются при различных сценариях автоизации.

  • Authenticate - авторизация по данныи полученным от пользователя. Данный метод не является обязательным и предназначен для авторизации пользователей "нетрадиционными методами". Например, авторизация по SSL сертификату или по одноразовому ключу.
  • AuthenByName - авторизация по имени. Используется при переходах между уровнями (например в функции su)
  • AuthenByPassword - классическая авторизация по имени и паролю. Используется если в запросе были переданы параметры username и password
  • Find - проверяет существует ли такой пользователь в системе. Вызывается при каждом обращении к COREmanager и при загрузки сессий из файла во время запуска панели, чтобы убедиться, что пользователь все еще существует в системе. По умолчанию, вызывает AuthenByName.

Защищённые члены (кратко)

Приватные члены (кратко)

virtual void BeforeExecute ( Session & )

Выполняется перед вызовом заданной функции (действия)

Конструкторы

AuthMethod ( const string &name , Priority priority = epBefore , const string &base = "" )

Конструктор

Аргументы:
[name] Имя метода авторизации

Методы

virtual bool IsOwner ( const Authen &auth , const string &user )

Проверить владельца

Метод используется при переходах между уровнями. По умолчанию возвращает true, если уровень доступа [auth] больше или равен lvAdmin

Returned: Данный метод должен вернуть true, если пользователь описанный [auth] является владельцем пользователя с именем [user].

virtual void SetPassword ( const string &user , const string &pass )

Установить пароль

Поменять пользователю [user] пароль на [pass]

Аргументы:
[user] имя пользователя
[pass] новый пароль

virtual void BeforeExecute ( Session & )

Данный метод является приватным

Выполняется перед вызовом заданной функции (действия)