Добрый день!
Было бы неплохо вообще более подробно описать проблему, чтобы можно было более точно ответить.
есть файл, у него есть владелец
Где этот файл находится? Что значит у него есть владелец? Просто, например, файл может лежать где-то на сервере и владельцем его будет являться пользователь Linux или владельцем будет являться пользователь Apache и т.д. Или же под владельцем подразумевается некая сущность юзера, которая реализована в Spring.
Нужно отправить запрос от другого пользователя на получение доступа.
Как другой пользователь видит, что у этого пользователя (владельца) есть файл?
Что является процессом предоставления доступа к этому файлу? Т.е. дать ссылку на скачивание этого файла просто или например, дать доступ на редактирование или только просмотр этого файла (как в Google Drive || Yandex Disk).
Можно ссылку на документацию или хотя бы название, куда смотреть.
Ну смотреть нужно в документацию по Spring. А также погуглить ваш вопрос, но с большей детализацией.
Напишу псевдокодом для наглядности один из простых вариантов решения:
entity User {
List<File> uploadedFiles; (OneToMany)
List<File> files; (ManyToMany)
}
entity File {
User owner; (ManyToOne)
List<User> users; (ManyToMany)
}
uploadedFiles - файлы загруженные пользователем
owner - владелец файла
files - файлы, к которым у пользователя есть доступ
users - пользователи, у которых есть доступ к этому файлу.
Дальше процессом предоставления доступа к файлу является уведомление пользователя (например, по почте или через push и т.д.) с просьбой предоставить доступ на указанный файл. Если доступ владельцем предоставляется, то запрашивающий доступ пользователь добавляется в список users для того файла, который он запросил.
Это самый примитивный вариант, который можно реализовать. Конечно же если предполагается интеграция с AWS, то могут потребоваться дополнительные манипуляции.
А так для более объективного и детального ответа, нужно больше информации о продукте и цели, которую вы желаете достичь.