Вам следует отправить ответ с кодом статуса HTTP.
Я бы не отправил 403 Forbidden назад, хотя, как указано в спецификации для этого кода состояния:
Сервер понял запрос, но
отказывается выполнять это.
Авторизация не поможет и
НЕ ДОЛЖЕН повторяться запрос
Вместо этого вернуть 401 Несанкционированный код состояния. См. Это для получения дополнительной информации о кодах состояния:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
То, как я делаю это с Джерси, - это отправить ответ со статусом и затем включить строковую сущность, которая содержит удобочитаемое сообщение, например,
Response response = Response.status(Status.PRECONDITION_FAILED).entity(
new String("Incorrect " + id + " [" + id + "]")).build();
Это будет отображаться для клиента. Я выбрасываю исключение Джерси WebApplicationException, которое переносит этот ответ.