Правило create модели безопасности Mic

create { source : <Sid>

, target : <Sid>

, container : <Sid | ()>

, driver : <Sid>

, level : <Level | ... | ()>

}

Назначает ресурсу target уровень целостности level в следующей ситуации:

Если поле container имеет значение (), ресурс target рассматривается как корневой, то есть не имеющий контейнера.

Чтобы задать уровень целостности level, используются значения типа Level:

type Level = LevelFull | LevelNoCategory

type LevelFull =

{ degree : Text | ()

, categories : List<Text> | ()

}

type LevelNoCategory = Text

Правило возвращает результат "разрешено", если назначило ресурсу target уровень целостности level.

Правило возвращает результат "запрещено" в следующих случаях:

Пример:

/* Серверу класса updater.Realmserv будет разрешено отвечать на

* обращения любого клиента в решении, вызывающего метод resolve

* службы realm.Reader, если ресурсу, создание которого запрашивает

* клиент, при инициации ответа будет назначен уровень целостности LOW.

* Иначе серверу класса updater.Realmserv будет запрещено отвечать на

* обращения любого клиента, вызывающего метод resolve службы realm.Reader. */

response src=updater.Realmserv,

endpoint=realm.Reader {

match method=resolve {

mic.create { source : dst_sid

, target : message.handle.handle

, container : ()

, driver : src_sid

, level : "LOW"

}

}

}

В начало