Выражение query модели безопасности Flow
query {sid : <Sid>}
Предназначено для использования в качестве выражения, проверяющего выполнение условий в конструкции choice
(о конструкции choice
см. "Привязка методов моделей безопасности к событиям безопасности"). Проверяет состояние конечного автомата, ассоциированного с ресурсом, который имеет идентификатор безопасности sid
. В зависимости от результатов этой проверки выполняются различные варианты обработки события безопасности.
Выполняется некорректно в следующих случаях:
- Ресурс с идентификатором безопасности
sid
не ассоциирован с конечным автоматом используемого объекта модели безопасности Flow. - Идентификатор безопасности
sid
вне допустимого диапазона.
Если выражение выполнено некорректно, модуль безопасности Kaspersky Security Module возвращает решение "запрещено".
Пример:
/* Любому клиенту в решении разрешено
* обращаться к серверу класса ResourceDriver,
* если конечный автомат, ассоциированный с этим
* сервером, находится в состоянии started или
* stopped. Иначе любому клиенту в решении
* запрещено обращаться к серверу класса
*ResourceDriver. */
request dst=ResourceDriver {
choice (service_flow.query {sid : dst_sid}) {
"started" : grant ()
"stopped" : grant ()
_ : deny ()
}
}