Авторизация параметров трассы фреймворка
У меня есть REST API на моей странице, и для аутентификации я использую сеанс Play.
Проблема с авторизацией, у меня десятки конечных точек выглядят так:
GET /api/domains/:domainId/properties/:propertyId/reports
Я мог бы добавить и if
оператор для каждого метода контроллера, чтобы проверить, есть ли у пользователя разрешения на этот домен или свойство, но могу ли я как-то обработать его глобально?
Я нашел этот модуль, но он, кажется, не обрабатывает параметры, просто проверяет, находится ли пользователь в какой-либо группе / роли или нет. https://www.playframework.com/documentation/1.0.2.1/secure
2 ответа
Я решил это с помощью пользовательского RequestHandler. Там вы можете извлечь параметры из пути и проверить их. (В Scala я мог бы даже изменить маршрут запроса, чтобы избежать повторения этих параметров во всех маршрутах, я не знаю, можно ли сделать это и в Java). (См.: https://www.playframework.com/documentation/2.4.x/JavaHttpRequestHandlers)