Я лично использую Spring security для достижения этой цели. Безопасность Spring позволяет легко использовать различные схемы аутентификации и авторизации (например, путем проверки заголовков basic / digest из HTTP-запроса к базе данных или серверу LDAP). Это не сложно настроить с JAX-RS , а также имеет изящную систему прав на основе аспектов, где вы можете делать такие вещи, как
@ PreAuthorize ("hasRole ('ROLE_ADMIN') или order.customer.username == user.username)
deleteOrder (Заказ заказа);
, который гарантирует, что аутентифицированный пользователь должен быть либо в группе ROLE_ADMIN , либо быть владельцем порядка , которому разрешено удалять его.
Когда это настроено, все, что вам нужно сделать в своем ресурсе JAX-RS , это обработать исключение безопасности из весны и предпринять соответствующее действие (например, выбрасывая WebApplicationException как описано здесь )