Решите, какой ресурс + метод URI будет соответствовать в Джерси - PullRequest
3 голосов
/ 02 апреля 2012

В нашем приложении на Джерси нам нравится представлять / ограничивать различные части нашего API на основе ролей.Если говорить конкретно, мы хотели бы предлагать только ссылки на ресурсы, которые может посещать роль, то есть уже при подготовке ответа A мы даже не предлагали бы ссылку на ресурс X, если бы пользователю не разрешили использовать X в любом случае.

Чтобы различать эти ссылки, мы хотели бы спросить Джерси, как он может разрешить определенный URI - то есть к какому ресурсу и какому методу на этом ресурсе.Если бы мы могли это сделать, мы также смогли бы определить, аннотировано ли это способом (@RolesAllowed), который не разрешал бы доступ ... и, следовательно, мы могли бы пропустить добавление ссылки на ответ в процессе создания.Очевидно, Джерси обладает этими знаниями / возможностями, поскольку он может разрешать входящие запросы.

Вопрос в следующем: Есть ли способ спросить Джерси о том, к какому разрешению относится URI с точки зрения класса и метода?

Редактировать: Да ... мы заметили, что существует ResourceContext (который может быть введен), который может предоставить нам соответствующий класс ресурсов ... но мы все еще не можем найти, к какому методу будет обращаться URI.

Ответы [ 2 ]

3 голосов
/ 01 ноября 2012
0 голосов
/ 03 апреля 2012

Интересно.Я не думаю, что это сервис по умолчанию, который предоставляется, но при условии, что вы настраиваете джерси в web.xml, ваша конфигурация хранится в WebServletConfig и ServletContainer.Я бы посмотрел на источник для этих двух классов и посмотреть, что доступно.По крайней мере, вы должны иметь возможность подклассировать что-то в стеке, которое выполняет инициализацию, и хранить необходимую информацию самостоятельно.Гораздо более практичным было бы получить сопоставление во время загрузки классов и обработки аннотации, а не искать ее для каждого запроса.

...