Я знаю, что могу использовать аннотацию или сопоставление запросов, чтобы ограничить доступ к действию некоторыми конкретными ролями.Но теперь у меня другое обстоятельство.
Мой сценарий таков: каждый пользователь моего сайта может создавать сообщения, и они могут делать свои собственные сообщения общедоступными, личными или делиться ими только с некоторыми другими пользователями .Я реализую обмен публикациями с помощью таблицы базы данных PERMISSION, в которой указывается, имеет ли пользователь право просматривать публикацию.
Проблема здесь заключается в том, что, когда клиент получает доступ к публикации по прямой ссылке, как он можетЯ определил, что он / она имеет право просматривать его?Существует 3 обстоятельства:
- Публикация является общедоступной, поэтому ее может просматривать любой человек (включая пользователя, не входящего в систему)
- Публикация является конфиденциальной, поэтому только логин-владелец может просматривать его
- Запись публикуется, это означает, что только логин-пользователь является общим и владелец может просматривать его.
Я хочу обработать какthis:
- Если запрошенный пост общедоступен: хорошо.
- Если запрошенный пост приватный / общий доступ: я хочу перенаправить клиента на страницу входа;после входа в систему пользователь будет перенаправлен на страницу, которую он хочет видеть.
Проблема в том, что я могу перенаправить пользователя на действие входа в систему контроллера / авторизации, но послечто я не знаю, как перенаправить его обратно.Ссылка на каждое сообщение отличается от post_id, поэтому я не могу использовать SpringSecurityUtils.securityConfig.successHandler.defaultTargetUrl
Может кто-нибудь знает способ сделать это?