Мне нравится разрабатывать «бизнес»-компоненты независимо от приложения. Таким образом, каждый компонент представляет собой отдельный проект с довольно специфическими обязанностями, границами и зависимостями.
Пример: компонент закладки. Этот компонент отвечает за создание, хранение, удаление и запрос закладок.
Но есть важное ограничение: каждый пользователь может видеть свои закладки, но не должен видеть закладки других пользователей.
- Это сбивает меня с толку. С одной стороны, речь идет об управлении доступом и авторизации, которые являются сквозными проблемами, потому что они нужны многим компонентам.
- С другой стороны, это ограничение тесно связано с закладками. Следовательно, это специфично для этого компонента. Может быть, это что-то вроде бизнес-правила.
Во всяком случае, я не уверен, какая часть приложения отвечает за это. Я уже реализовал аутентификацию с помощью JAAS. Так что было бы неплохо, если бы я мог использовать JAAS для контроля доступа и авторизации, но я не уверен, что это адекватное решение.
Учебники JAAS говорят, что я могу осуществлять авторизацию/управление доступом в зависимости от того, кто запускает код, и я могу создавать разрешения для своего приложения (или компонента в данном случае). С другой стороны, это частично работает с файлом политики, но я не хочу предоставлять доступ каждому пользователю через файл. Информация о том, какие закладки доступны пользователю, хранится в моей базе данных.
- Способен ли JAAS решить этот вид контроля доступа/авторизации, и если да, то как?
- Есть ли шаблоны, которые могут мне помочь?