Объект класса Flow – реализация конечного автомата, описание которого задается в конфигурации объекта.
Конфигурация объекта
Конфигурация объекта класса Flow содержит следующие элементы:
type States – тип, определяющий множество допустимых внутренних состояний.По умолчанию допускает любые строковые значения. При создании объекта класса, необходимо уточнить этот тип до списка допустимых строковых значений, объединенных символом | (OR).
configstates – множество внутренних состояний.initial – начальное состояние.transitions – таблица переходов между состояниями. Для каждого текущего состояния указывается список состояний, в которые можно перейти.Все параметры конфигурации обязательны при создании объекта класса.
Конфигурация аудита
При объявлении профиля аудита, объект класса Flow содержит следующие поля конфигурации аудита:
{ <имя объекта>:
{ kss: [ "granted", "denied" ]
, omit: [<states>] // список внутренних состояний объекта, в которых результаты вызовов политик не попадут в журнал аудита.
}
Пример
security.psl
...
use nk.flow._
/* service_flow – пример реализации абстрактного сервиса
с конфигурацией из четырех состояний.
Дальнейшие примеры использования класса Flow основаны на этом примере. */
policy object service_flow : Flow {
type States = "sleep" | "started" | "stopped" | "finished"
config = {
states : ["sleep", "started", "stopped", "finished"],
initial : "sleep",
transitions : {
"sleep" : ["started"],
"started" : ["stopped", "finished"],
"stopped" : ["started", "finished"]
}
}
}

Пример конечного автомата, используемый в этом разделе
В начало