Spring Security: хранение ролей и прав в БД

Mar 12, 2010 12:22

Разбираюсь со Spring Security ( Read more... )

spring, security

Leave a comment

sassa_nf March 12 2010, 09:43:53 UTC
1. как-то с трудом верится, что нужно определять роли настолько динамически, что нельзя и перезагрузиться.

2. если все настолько динамично, как вы собираетесь обслуживать запросы, которые начались ДО изменения ролей?

Reply

sam_in_lj March 12 2010, 10:34:08 UTC
1. Приложение сдаётся заказчику, и он должен иметь возможность сам создавать роли и назначать им соответствующие права. Пересобирать приложение и перезагружать его он не будет.

2. Будет админская (единственная известная заранее) роль. Первоначально базу можно заполнить и при помощи sql запросов.

Reply

sassa_nf March 12 2010, 11:53:31 UTC
вы путаете role specification, role mapping и role assignment. role specification - т.е. указание, какие роли какие методы могут вызывать - вещь довольно статическая и задается на уровне дизайна. я не видел, чтобы кто-то парился от перезагрузки-передеплоя, который при этом необходим.

role mapping - какие роли каким эквивалентны, какие роли у каких наследуют. сие можно реализовать динамически, но не имеет отношения к "какие методы вызывать". это задается на уровне бизнес логики.

role assignment - какие юзера в какие роли мапятся. сие тоже динамическое и driven by бизнес логика.

Reply

sam_in_lj March 12 2010, 14:11:00 UTC
хм, возможно, задавать эквивалентность ролей, это выход.

Я правильно понимаю, что, если я хочу достигнуть поставленной задачи, мне придётся завести большую кучу ролей для role specification?
То есть, к примеру, для справочников книг, пользователей завести роли: ROLE_BOOKS_EDIT, ROLE_BOOKS_READ, ROLE_BOOKS_REPORT, ROLE_USERS_EDIT, ROLE_USERS_READ,.. и т.д. для каждого справочника по несколько своих ролей.
И для них уже указывать, какие методы каких классов они могут вызывать.

А потом уже маппить роли как захочу: "зав. склада" -> "ROLE_BOOKS_EDIT, ROLE_BOOKS_READ, ROLE_USERS_READ" и т.д.?
(пример вымышленный)

Reply

sassa_nf March 12 2010, 15:05:34 UTC
вымышленный пример - да, примерно так ( ... )

Reply


Leave a comment

Up