Группа доступа может определять список атрибутов сессии для пользователей, входящих в данную группу. Эти атрибуты можно использовать при настройке ограничений. Кроме того, на этапе разработки в прикладной код системы можно заложить анализ наличия некоторых атрибутов сессии, и тем самым управлять поведением готовой системы для конкретных групп пользователей на этапе эксплуатации.
В пользовательскую сессию при входе в систему будут помещены все атрибуты, заданные для группы, в которой находится пользователь,
и для всех родительских групп вверх по иерархии. При этом если атрибут встречается в иерархии групп несколько раз, значение
он получит от самой верхней группы, то есть переопределение значений атрибутов на нижнем уровне невозможно. При попытке переопределения
в журнал сервера будет выведено сообщение с уровнем WARN
.
Для создания атрибута в экране Session Attributes и нажмите :
выберите группу, перейдите на вкладкуВ данном экране необходимо задать уникальное имя атрибута, тип данных и значение.
Получить атрибут сессии в коде приложения можно следующим способом:
@Inject private UserSessionSource userSessionSource; ... Integer accessLevel = userSessionSource.getUserSession().getAttribute("accessLevel");
Использовать атрибут в ограничениях можно, указав его в параметре JPQL с префиксом session$
:
{E}.accessLevel = :session$accessLevel