Встала такая проблема: каждой строке в таблице необходимо установить права на чтение, создание изменеие и удаление. Таким образом, чтобы пользователь Вася мог просматривать некоторые записи из таблицы, некоторые менять и пр. Кроме того, необходимо чтобы это можно было настраивать.
Задачка вроде бы популярная, для любого приложения важна, однако я не нашел конкретных рекомендаций.
В качестве ОРМ хочу использовать Seam, EJB3 с хибернейтом, поэтому вопрос, как это лучше сделать?
Возникают следующие варианты:
1. Использовать JAAS — Permission сохранять и удалять из базы, AccessControl.checkPermissions(perm) юзать для проверки прав. При этом в сессионные бины извлекаются все данные, а какие передавать на уровень представления решает сессионный бин в зависимости от АксессКонтрола.
2. Сделать такую конфигурацию сущностных бинов, чтобы из таблицы доставались данные актуальные только для определенного юзера с помощью where.
3. С помощью вьюшек доставать только нужные данные, сохранять их с помощью хранимых процедур.
Как поступить лучше? Самому мне нравится вариант 1, но я мало доверяю JAASовскому контролю доступа. Есть ли у кого нибудь опыт в этом деле? Может быть есть какие нибудь компоненты расчитанные именно на этот случай?
Буду благодарен за любые советы