Я создаю службу REST в Java, используя Dropwizard в сочетании с Apache Shiro для аутентификации и авторизации. Я расширил JdbcRealm, чтобы заставить Shiro использовать мою базу данных PostgreSQL (к которой я обращаюсь через Hibernate). Аутентификация работает хорошо. Создание разрешений на уровне группы также очень просто. К сожалению, мне не удалось найти идиоматический способ привязки определенных экземпляров ресурсов к конкретным пользователям (темам). Я знаю, что Shiro обеспечивает поддержку instance-level access control, но документация не показывает рабочий процесс, который позволяет мне сделать следующее:Динамические разрешения на уровне экземпляра с Apache Shiro
- пользователя Алиса создает ресурс X
- пользователя Bob должно быть позволено читать X, но не писать/удалить это
- пользователя Алиса должна иметь полный доступ на чтение/запись/удаление доступа к X
Любые намеки или рекомендации приветствуются!
Я закончил все это программно, используя 'Subject.checkPermission()' и DAO для разрешений в моей базе данных! –