|
|
|
RBAC в JAVA SE
|
|||
|---|---|---|---|
|
#18+
Привет. Нашел в сети sql-схему шаблона RBAC : Структура понятна: роли, разрешения ( permissions ), юзеры.. У меня есть вопрос общего плана: что, собственно говоря, дальше? Я просмотрел ряд статей, из которых большая часть - просто описание самого паттерна. Куда реже встречаются реализации на той же яве (но зачастую примешиваются туда сторонние программы - глассфиши всякие, томкаты и масса других). Труднее всего были поиски простейшей реализации rbac на java для небольшого проекта. Как дальше обрабатывать эти роли, проверять их? Есть небольшое приложение ( сервер ), принимающее запросы от клиентов и обрабатывающее их ( выполняя в основном CRUD- операции с БД ). Общение между сервером и клиентами - например, через HTTP. Клиентом будет не браузер, а java-приложение ( поэтому излишние заморочки с сервлетами хотелось бы обойти стороной ) Для своего случая набор ролей оказался небольшим: клиент, админ_смены и .. Пусть еще root. Набор разрешений для роли "клиент" мог бы быть примерно таким: get_all_goods_list, add_to_cart, создать_заказ ... Для "админ_смены" - такой: открыть_смену, закрыть_смену, добавить_заказ, удалить_заказ, ... А для root - что-то из набора выше, и пару других каких-нибудь системных функций. Идем далее.. В моем представлении на каждое разрешение ( for each permission ) нужно оформить подготовленный запрос ( prepared statement ), например, для "получить_список_товаров" - запрос вида SELECT goods_name, goods_id, goods_quantity FROM goods; Авторизовали мы пользователя vasya. А далее? От пользователя vasya поступает новый запрос к api сервера.. Что-то вроде get_all_goods_list, ожидая получить список товаров в формате JSON. Перед тем, как обработать запрос от пользователя, нужно просмотреть его роль, а по ней - список доступных разрешений. И, если запрошенная функция содержится в списке разрешений, то запрос обработать, иначе - отклонить. Вроде бы и все.. Предложенный вариант имеет право на жизнь? :) Или нужно что-либо исправить, учесть? Может быть, упущено что-то важное? Поделитесь мыслями на этот счет. Сам я немного подзастрял на этом моменте.. Перед тем, как приступить к кодингу, хотелось еще раз обговорить теоретические моменты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 07:55 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2122389]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 150ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...