Объект класса Flow
– реализация конечного автомата, описание которого задается в конфигурации объекта.
Конфигурация объекта
Конфигурация объекта класса Flow
содержит следующие элементы:
type States
– тип, определяющий множество допустимых внутренних состояний.По умолчанию допускает любые строковые значения. При создании объекта класса, необходимо уточнить этот тип до списка допустимых строковых значений, объединенных символом |
(OR).
config
states
– множество внутренних состояний.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"]
}
}
}
Пример конечного автомата, используемый в этом разделе
В начало