jsecurity: как настроить разрешение из базы данных?
Я использую плагины Jsecurity на Grails и хотел бы узнать, как настроить разрешение для каждой страницы из базы данных, если это возможно.
это как хранить следующие правила:
/ home / edit / * для администратора / home / *
для пользователей / администратор / * для администратора / меню / * для администратора, штатного администратора
так далее...
на данный момент мы сделали это в файле conf/SecurityFilters.groovy следующим образом
menuEditing(controller:"menu"){
before = {
accessControl {
role("Administrator");
}
}
}
Можно ли хранить правила в базе данных вместо записи в Фильтры безопасности?
PS: я думаю, что jsecurity меняет свое название на текст ссылки Apahce Shiro
1 ответ
Вы можете создать пользовательский фильтр, который делает вызовы jsecurity для checkPermission. Если, например, вы можете определить авторизацию от контроллера, действие и идентификатор, вы можете использовать этот фильтр
permissionCheck() {
before = {
SecurityUtils.getSubject().ceckPermission("${controller}:${action}:${id}")
}
}
и область, которая проверяет это разрешение, используя базу данных.